ホームページ  >  記事  >  バックエンド開発  >  jquery ajax json関連の奇妙な問題

jquery ajax json関連の奇妙な問題

WBOY
WBOYオリジナル
2016-06-13 12:26:531326ブラウズ

jquery ajax json奇妙な問題
jsコード
$.ajax({
type: "post",
url: "/test1.php",
dataType: "json",
タイムアウト: 16000,
データ:{cid:n},
成功: function(msg){
if(1 == msg.status){
アラート('ok'); 🎜> }else if(0 == msg.status){
alert('sorry')
}
},
error: function (jqXHR, textStatus, errorThrown) {
アラート(textStatus "," errorThrown); html; //この文は utf8 形式で出力されます。この文の有無にかかわらず、ajax エラー ブランチは同じように実行されます。
$ menu=array("status"=>1);
exit(json_encode($menu));

js: "json" の dataType を削除し、成功ブランチを通常どおり実行します。 jquery1.3.2 を使用して成功ブランチも通常どおり実行します。ただし、1.6 が使用されている限り、dataType: "json" を指定すると、エラー ブランチがすぐに実行され、「parsererror、テキストから json への変換がありません」という json 解析の問題が報告されます。

PHP の json_encode() 関数でも配列を json 形式に変換する際に問題があるのでしょうか?

------解決策----------------------

dataType: "json" したがって、ajax エラー ブランチに入る前提は、返されたデータが json 形式ではないということです
parsererror、テキストから json への変換がない (json 変換失敗) こともこの点を証明しています

なぜ変換失敗?おそらく、php プログラムは utf-8 BOM ヘッダー
を持つ形式で保存されています。これは、
2.php で確認できます。出力結果の先頭の efbbbf は BOM ヘッダー

です。

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