Heim  >  Artikel  >  Web-Frontend  >  So lösen Sie das Problem der verstümmelten JQuery-Parameter

So lösen Sie das Problem der verstümmelten JQuery-Parameter

藏色散人
藏色散人Original
2021-01-12 09:01:292312Durchsuche

Methoden zum Lösen verstümmelter JQuery-Parameter: 1. Transkodieren durch „new String(param.getBytes(“iso8859-1“), „utf-8“); 2. Ändern Sie die Seitenanforderung in eine POST-Anfrage.

So lösen Sie das Problem der verstümmelten JQuery-Parameter

Die Betriebsumgebung dieses Tutorials: Windows7-System, jquery1.10.0-Version, Dell G3-Computer.

Empfohlen: jQuery-Video-Tutorial

jQuery sendet eine Anfrage zur Übertragung verstümmelter chinesischer Parameter

Die Anforderung, die ich in letzter Zeit mache, beinhaltet kaskadierende Abfragen, die auf der Liste der Dropdown-Felder auf niedrigerer Ebene basieren auf den Inhalt des Dropdown-Felds der oberen Ebene, denn Es gibt nur zwei Kaskadenebenen und die Daten in der Tabelle werden später kaum geändert, sodass die von mir entworfene Tabelle direkt Chinesisch speichert.

Das Menü sieht wie folgt aus: <br>So lösen Sie das Problem der verstümmelten JQuery-Parameter

Der Code lautet wie folgt:

var url = "${basePath}/institutionConfig/getDepartmentByCenter.do?param=" + center;
$.get(url, function (data) {
    var list = data.data;
    for (var i = 0; i < list.length; i++) {
         departmentSelector += "<option value=&#39;" + list[i] + "&#39; ";
         if (department && list[i] == department) {
             departmentSelector += "selected=&#39;selected&#39;";
         }
         departmentSelector += ">" + list[i] + "</option>";
    }
   $("#accountDepartmentAdd").html(departmentSelector);
});

Ich verwende $.get(url, callback), um Anfragen an den Hintergrund zu senden, den Browser Verwendet URL-Kodierung für die Parameter. Die Kodierung wurde durchgeführt und die im Hintergrund erhaltenen Parameter sind: <br>So lösen Sie das Problem der verstümmelten JQuery-Parameter

Sie können sehen, dass der empfangene Parameter verstümmelter Code ist. Also habe ich eine weitere Verarbeitung durchgeführt, also eine Transkodierung:

String center = new String(param.getBytes("iso8859-1"), "utf-8");

Auf diese Weise ist der empfangene Text chinesisch.

Aber dieser Ansatz meldete tatsächlich einen Fehler in der Testumgebung. Nach der Analyse der Ursache stellte ich fest, dass die Testumgebung das richtige Chinesisch erhielt, aber nach der Transkodierung stellte sich heraus, dass es falsch war. Daher sollte die Lösung darin bestehen, die Seitenanforderung zu ändern. Da die durch die GET-Methode verursachten Parameter codiert sind, wird sie in eine POST-Anfrage umgewandelt. Die POST-Anfrage übermittelt die Originaldaten:

var url = "${basePath}/institutionConfig/getDepartmentByCenter.do";
$.ajax({
      url: url,
      data: {"param": center},
      dataType: "json",
      type: "POST",
      success: function (data) {
          var list = data.data;
          for (var i = 0; i < list.length; i++) {
              departmentSelector += "<option value=&#39;" + list[i] + "&#39; ";
              if (department && list[i] == department) {
                 departmentSelector += "selected=&#39;selected&#39;";
              }
              departmentSelector += ">" + list[i] + "</option>";
           }
           $("#accountDepartmentAdd").html(departmentSelector);
      }
 });
<br>

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem der verstümmelten JQuery-Parameter. 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