ホームページ  >  記事  >  ウェブフロントエンド  >  jsonデータを完璧に処理しても成功しない

jsonデータを完璧に処理しても成功しない

php中世界最好的语言
php中世界最好的语言オリジナル
2018-04-25 14:56:381983ブラウズ

今回は、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 はどのようなデータ型を処理できますか?

Ajaxリクエストの進行状況を表示

以上がjsonデータを完璧に処理しても成功しないの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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