2015-10-05 2 views
13

ich etwas tut, wie diesJQuery Ajax Leerzeichen und kaufmännische Und Ausgabe

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); 

Und es funktioniert alles in Ordnung, außer, wenn ich „&“, also Räumen um ein kaufmännische. So sieht der Anforderungsparameter wie "D+&+D,+enterprisess" oder D+%26+D%2C aus. Dies gibt dann eine 404 auf dem Server zurück.

Eine Idee, was Sie hier tun können?

+0

Verwenden 'encodeURIComponent()' zu URL Ihre Werte kodieren mit String.prototype.replace() Versuchen lösen. –

+0

Von dem, was ich las, meine Parameter in der Jquery Ajax Call übergeben, ich sollte nicht müssen. Auch ich habe es ausprobiert und es bricht es noch schlimmer Ich denke, es ist wie Doppelcodierung dann – StevieB

+0

Lustig genug funktioniert es auf meinem lokalen Server dh Parameter wie "D +% 26 + D% 2C", aber nicht auf Entwicklungsserver – StevieB

Antwort

2

Für Pass-Parameter mit Leerzeichen und Sonderzeichen in Ajax verwenden Sie die Escape- und Unescape-Funktion.

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

Sie dieses Problem

1

mit RegExp()/\s(&)\s/

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