jQuery -$.ajax URL-Encoding-Probleme
Ich bin mit jQuery $.ajax-Methode zum senden und abrufen von Daten an einen REST-service. Einige der URL ' s ich bin die Bereitstellung der $.ajax-Methode müssen Sie Leerzeichen und andere Sonderzeichen werden codiert.
Liegt das problem mit Chrome, Safari (Webkit) und Internet Explorer-Browsern. Firefox POST an eine URL, die codiert ist, aber den anderen Browsern POST an eine URL, die nicht codiert sind.
Als Beispiel:
$.ajax ({
url: "http://localhost:8080/rest/123/Product Line A/[Product Type B]",
type: "POST",
dataType: "json",
data: { ... },
success: function(...){},
error: function(...){}
})
Firefox setzt den URL in folgendem format ein:
http://localhost:8080/rest/123/Product%20Line%20A/%5BProduct%20Type%20B%5D
Chrome, Safari und IE BEITRÄGE, die die URL im folgenden format ein:
http://localhost:8080/rest/123/Product Line A/[Product Type B]
Den REST-services akzeptiert der codiert (Firefox) format - gibt es eine Möglichkeit, ich kann diese konsistent in allen Browsern?
Vielen Dank im Voraus!
InformationsquelleAutor der Frage schone | 2010-12-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie javascript verwenden, ist
encodeURI()
- Funktion zum codieren einer URL in "Firefox" - format als Ihnen Zustand.InformationsquelleAutor der Antwort Aatch
Vorbei
[Product Type B]
nicht in verschlüsselter form ungültig ist, also was die Browser daraus machen, ist nicht definiert.Tun
alsterrunde()
auf der Produkt-Typ Teil.InformationsquelleAutor der Antwort Pekka 웃
Denke ich .serialize() wäre der jquery-Weg, dies zu tun.
prüfen Sie hier: http://api.jquery.com/serialize/
gibt es auch ein plugin für jquery: http://plugins.jquery.com/project/URLEncode
oder den javascript-Weg ... alsterrunde()
überprüfen Sie hier:
http://www.w3schools.com/jsref/jsref_encodeURI.asp
InformationsquelleAutor der Antwort mahatmanich
Quick-fix wäre
encodeURI()
die URL vor der übergabe an $.ajax. Könnte man auch ersetzen die $.ajax Funktion mit einem dünnen wrapper zu nehmen, die {} literal und encodeURI die URL vor der übergabe an die original Funktion.InformationsquelleAutor der Antwort Alex Wright