ホームページ  >  記事  >  ウェブフロントエンド  >  jQuery が文字化けした中国語パラメータを送信するリクエストを送信した場合はどうすればよいですか?

jQuery が文字化けした中国語パラメータを送信するリクエストを送信した場合はどうすればよいですか?

coldplay.xixi
coldplay.xixiオリジナル
2020-12-03 10:41:421900ブラウズ

文字化けした中国語パラメータを送信するための jQuery リクエストの解決策: まずパラメータを GET モードで直接送信し、次にトランスコードします。コードは [String center = new String(param.getBytes("iso8859-1") です。 、「utf-8」)]。

jQuery が文字化けした中国語パラメータを送信するリクエストを送信した場合はどうすればよいですか?

このチュートリアルの動作環境: Windows7 システム、jquery3.2.1 バージョン、Dell G3 コンピューター。

文字化けした中国語パラメータを送信するための jQuery リクエストの解決策:

現在取り組んでいる要件にはカスケード クエリが含まれており、クエリはコンテンツに基づく必要があります。上位レベルのドロップダウン ボックスの表示 下位レベルのドロップダウン ボックスのリストを表示 カスケードは 2 レベルしかなく、テーブル内のデータは後でほとんど変更されないため、私が設計したテーブルには中国語が直接格納されます。

メニューは次のとおりです:

jQuery が文字化けした中国語パラメータを送信するリクエストを送信した場合はどうすればよいですか?

コードは次のとおりです:

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

私は $.get(url を使用します) , callback) バックグラウンドにリクエストを送信する場合、パラメータは GET モードで直接送信されるため、ブラウザはパラメータを URL エンコードでエンコードし、バックグラウンドで取得されるパラメータは次のとおりです。

jQuery が文字化けした中国語パラメータを送信するリクエストを送信した場合はどうすればよいですか?

#ご覧のとおり、param は文字化けを受け取りました。そこで、受信したテキストが中国語になるように、さらなる処理、つまり

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

をトランスコーディングしました。

しかし、このアプローチでは実際にテスト環境でエラーが報告され、原因を分析したところ、テスト環境では正しい中国語が受信されていたものの、トランスコード後には間違っていたことが判明しました。したがって、解決策はページリクエストを変更することです。 GET メソッドによるパラメータはエンコードされているため、POST リクエストに変更されます。POST リクエストは元のデータを送信します:

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

関連する無料学習の推奨事項: javascript(ビデオ)

以上がjQuery が文字化けした中国語パラメータを送信するリクエストを送信した場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。