ng-resource
kullanarak sunucuya bir dize gönderiyorum. Herhangi bir noktada dize içine &
eklerseniz, &
'dan sonraki karakterler sunucuya gönderilmez. & Sunucuya Gönderildiğinde Dize Bölünme Nedenleri
"This part of the string is shown & this part of the string is NOT shown"
herşey &
sonra hiçbir zaman gösterilmez. Sunucuya gönderilmeden önce kesilmiş gibi.
İşte bir çalışma kodu örneği.
angular.module('testApp', ['ngResource'])
.service('TestService', testService)
.controller('Controller', theController);
function testService() {
this.$get = get;
get.$inject = ['$resource'];
function get($resource) {
var baseUrl = window.location['origin'];
var theResource = $resource(
baseUrl + '/test_url',
{},
{
testMe: {method: 'GET', url: '/test_url'}
}
)
return theResource;
}
}
theController.$inject = ["TestService"];
function theController(TestService) {
activate();
function activate() {
var stringToSend = "this part of the string is shown & this part of the string will NOT be shown";
// The server will only see the text "this part of the string is shown &"
TestService.testMe({stringParam: stringToSend}, function(resp) {});
}
}
Sorun nedir ve nasıl düzeltirim?
PS: not shown
'u kastettiğimde, dizenin bu bölümü hiç gönderilmediyse sanırım.
şey URL'ye sıkıştırmadığınızı önce dizeyi Kodlama URL değildir. Yine de stringParam'ın bu kodda okunduğu yeri bulamıyorum. – Quentin
Bunun nedeni, sorgu dizesininin bir parçası olarak göndermeniz ve parametrelerin bölünmesi için sorgu dizesinin bir parçası olarak çalışmanızdır. Bunun yerine bir posta isteği olarak göndermeyi deneyin. Parametreleri talep gövdesine sarmalı ve sonra hepsini alacaksınız. –
"encodeURI" yanıtını gönderen kişi doğruydu. Maalesef cevabı sildiler. – jason328