ホームページ >ウェブフロントエンド >jsチュートリアル >jsonデータを完璧に処理しても成功しない
今回は、JSONデータをうまく処理できない場合と、完璧なJSONデータで処理を成功させる場合の注意事項を以下にお届けします。場合は、一緒に見てみましょう。
1.jquery は、ajax メソッドを通じて json データを取得するときに成功コールバックを実行しません
問題の説明: jquery は ajax メソッドを通じて json データを取得しますが、成功コールバック メソッドを実行しません
問題の原因: json 形式に問題があるか、標準の記述方法を満たしていないため、常にエラー コールバック メソッドを実行します
解決策: json 形式は次の 3 つの標準の記述方法に準拠する必要があります:
1) キー名: 二重引用符で囲まれています。 2)
文字列: 二重引用符で囲まれています。 3) 数値とブール値は二重引用符で囲む必要はありません
注: 二重引用符で囲む必要があります。2. jQueryでは、ajaxはjson
データ型を使用し、常に成功実行エラーステートメントをスキップします関数error : function(XMLHttpRequest, textStatus, errorThrown) {
//这个error函数调试时非常有用,如果解析不正确,将会弹出错误框
alert(XMLHttpRequest.responseText);
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus); // parser error;
}
を実行すると、
が表示されます。上のボックスには次のように表示されます:
<!DOCTYPE html PUBLIC "-//W3C //DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD /xhtml1-transitional.dtd">以 及<?xml version="1.0" encoding="gb2312" ?>
理由はわかりませんが、これら 2 つの文を削除した後、success が正常に実行されました
3 $.ajax() 内の URL がドメインをまたぐ場合、success は常に実行されず、エラーは常に発生します
1) クロスドメインの問題を解決するためにServletActionContext.getResponse().setHeader("Access-Control-Allow-Origin", "*");を追加し、正常に成功しました
2) dataType :"json",それを削除して、成功するかどうかを確認します。
dataType は、サーバーによって返されることが予期される情報のタイプです。
理由: 返されるデータ型は、定義されたデータ型に準拠する必要があります。つまり、定義した dataType が json タイプの場合、返されるデータは json でなければなりません。そうでない場合は、エラーのあるプログラム ブロックが実行されます。
(1) 同時に、返される JSON データが厳密な JSON 形式であるかどうかに特別な注意を払う必要があります。
(2) バックグラウンドがリスト データ (リストは JSON 形式です)。ダーティでないデータは、厳密な JSON 形式ではないことを意味します。
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。
推奨読書:
サーバーから返される ajax はどのようなデータ型を処理できますか?以上がjsonデータを完璧に処理しても成功しないの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。