Heim  >  Artikel  >  Web-Frontend  >  Schnelle Lösung für Ajax-Übertragungsparameter, die Sonderzeichen enthalten

Schnelle Lösung für Ajax-Übertragungsparameter, die Sonderzeichen enthalten

亚连
亚连Original
2018-05-24 10:29:251722Durchsuche

Jetzt bringe ich Ihnen eine schnelle Lösung für das Problem der Ajax-Übertragungsparameter, die Sonderzeichen enthalten. Ich hoffe, es hilft allen.

JQuery AJAX stößt auf ein solches Problem. Die Parameter enthalten Sonderzeichen wie &'#@ usw. Zu diesem Zeitpunkt treten Probleme bei der Ausführung von AJAX auf, da sich die übergebenen Parameter geändert haben Beispiel Verstehen Sie einfach:

Option 1:

$.ajax({
  url: '/ashx/ajax.ashx',
  type: 'post',
  data: 'option=delete&name=11&adb, success: function (data) { if (data != 'error ') { } } }); '

Der oben ausgeführte Ajax besteht darin, Daten mit dem Namen 11&abd asynchron zu löschen, wenn der Beim Aufrufen der Seite ajax.ashx erhalten wir den Namensparameter 11. Nach dem Ausführen des Vorgangs werden wir feststellen, dass die Daten mit dem Namen 11 tatsächlich gelöscht wurden, die Daten mit dem Namen 11&abc jedoch nicht Aufgrund des &-Sonderzeichens werden die beiden vorherigen Parameter zu drei Parametern: Option, Name und ABC. Zu diesem Zeitpunkt müssen Sie eine andere Methode verwenden, um die Parameter zu übergeben:

$.ajax({
  url: '/ashx/ajax.ashx',
  type: 'post',
  data: {
    'option': 'delete',
    'name': '11&adb'
  },
  success: function(data) {
    if (data != 'error') {}
  }
});

Verwenden Sie das oben genannte JSON-Format, um die Parameter durch Sonderzeichen zu übergeben.

Option 2: Einheitliche Codierung UTF-8.

1 . JSP-Seite:

0606ca4d276aa4bed30a3ab47e21aba8

2.Ajax.js-Seite: Bei der Übergabe von Parametern, Parameter mit Sonderzeichen Zeichen können mit der Funktion escape(encodeURIComponent()) transkodiert und an Backstage übergeben werden!

var url = "/ZX/servlet/AddMemoServlet memo=" + memoCode + "&otherMemo=" + escape(encodeURIComponent(otherMemo)) + "&applNo=" + applNo.innerText.substr(0, 16); //alert("url="+url); 
xmlHttp.open("POST", url, true); 
xmlHttp.onreadystatechange = doMemo; 
xmlHttp.send(null);

3. Der Server empfängt die übergebenen Daten. Beispiel: in der doGet-Methode eines Servlets: request.setCharacterEncoding("gb2312"). ; Antwort. setContentType("text/xml;charset=utf-8"); Response.setHeader("Cache-Control", "no-cache"); durch die URL in Ajax Enthält Sonderzeichen, Back-End-Parsing-Fehler: dekodieren Sie java.net.URLDecoder im utf-8-Format urlDecoder=new java.net.URLDecoder(); String otherMemo = urlDecoder.decode(request.getParameter("otherMemo "), "utf-8"); logger.info("otherMemo:" + otherMemo);

Das Obige habe ich für alle zusammengestellt. Ich hoffe, dass es in Zukunft für alle hilfreich sein wird.

Verwandte Artikel:

Dateien über Ajax hochladen und FormData verwenden, um Ajax-Anfragen zu stellen

Verwenden Sie Ajax, um eine asynchrone Aktualisierung zu implementieren Anfragen

So laden Sie Dateien mit jQuery Ajax hoch

Das obige ist der detaillierte Inhalt vonSchnelle Lösung für Ajax-Übertragungsparameter, die Sonderzeichen enthalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn