jquery ajaxポスト送信データが文字化けする_jquery

WBOY
リリース: 2016-05-16 17:17:21
オリジナル
915 人が閲覧しました

jqueryを使用してhtml5アプリケーションを処理する場合、Firefoxでのテストは正常でした。ユーザーがパッドでアクセスすると、文字化けが発生すると表示されました。
自分でテストしたところ、確かにこの問題が存在することがわかりました。この問題では、ページ属性が utf-8 に設定されている場合、Firefox のみが charset=utf-8 ヘッダー ファイルを渡します
Chrome と IE が指定されていないため、文字化けが発生します
。解決策:

コードをコピー コードは次のとおりです。

$.ajaxSetup({ contentType: "application/x-www -form-urlencoded; charset=utf-8"
});
$.post("test.php", { name: "i5a6", time: "2pm " },
function(data ){
process(data);
}, "json");

または次を使用します:

コードをコピーします コードは次のとおりです:
$.ajax({
url:url,
type: " POST",
data:data,
contentType: "application/x-www-form-urlencoded; charset=utf-8",
dataType: "json",
success: function() {
...
}
})

最初のものを使用することをお勧めしますが、実際の状況に基づいて、encodeURIComponent を使用することを推奨する人もいます。文字変換
Ajax が文字化けしたデータを送信した経験をまとめます
コードの文字化けを回避するには、次の手順を実行できます
解決策
1. ファイル エンコーディング、データベース エンコーディング、および Web ページのコンテンツ タイプのエンコーディング
チェック
次の場合は UTF-8 を使用することをお勧めします。中国語。gbk/gb2312 を使用すると文字化けが発生する可能性があります
2. get の代わりに post を使用して送信します
get メソッドはリンク経由でパラメータを渡し、自動的に urlEncode (エンコード) を実行し、各ブラウザのエンコード方法を実行します。異なる場合があります。 post を使用すると、この状況を回避できます。
3. js フロントエンドでエンコードをエスケープして送信し、バックグラウンドでデコードしてデータを取得します。
これらはオンラインで検索できます。
4. contentType をグローバルに設定し、 jquery ajax は送信データのエンコードに utf-8 を使用するため、エンコード
が使用されますが、IE は送信時に charset=utf-8 を追加しないため、文字化けが発生します (IE はデフォルトで iso-8859-1 エンコードを使用します)

コードをコピーします コードは次のとおりです:
$.ajaxSetup({
contentType: "application/x-www-form-urlencoded; charset=utf-8"
});

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!