2015-10-05 14 views
13

BujQuery ajax boşluk ve ampersanı konu

var apiOptions = { 
    url: url, 
    dataType: 'jsonp', 
    type: "GET", 
    success: success 
}; 

if(dataOptions) { 
    apiOptions.data = { 
     key: self.settings.key, 
     limit: self.limit, 
     address: dataOptions.address, 
    }; 
} 
$.ajax(apiOptions); 

gibi bir şey yapıyorum Ve "&" olduğunda bir işareti etrafında boşluklar öylesine hariç her şey için çalışıyor. Bu nedenle, istek parametresi "D+&+D,+enterprisess" veya D+%26+D%2C gibi görünür. Bu daha sonra sunucuda bir 404 döndürür.

Burada ne yapacağınız hakkında bir fikriniz var mı?

+0

Kullanımı ile String.prototype.replace() kullanmayı deneyin sorun size çözmek. –

+0

Gönderdiğim parametrelerden geçirdiğim jQuery ajax çağrısı üzerinden yapmam gerekmem. Ayrıca ben denedim ve daha da kötü bozar Ben çift kodlama gibi yapar o zaman o zaman – StevieB

+0

Benim yerel sunucu üzerinde çalışır, yani "D +% 26 + D% 2C" gibi parametresi geliştirme sunucusu – StevieB

cevap

2

Ajax'ta boşluk ve özel karakterli geçiş parametreleri için kaçış ve unescape işlevini kullanın.

var test = 'Exemplae Actão ç @#$%$ '; 
var testEscape = escape(test); 
console.info(test , testEscape , unescape(testEscape)); 

Bu

1

değerlerinizi kodlamak `encodeURIComponent()` URL'ye RegExp()/\s(&)\s/

var data = "123 & abc"; 
 
var res = data.replace(/\s(&)\s/, "$1"); 
 
console.log("data:", data,"res:", res)