リクエストを送信しても成功しないように Ajax を実装する方法

php中世界最好的语言
リリース: 2018-03-30 15:30:44
オリジナル
1033 人が閲覧しました

今回は、リクエストを送信しても成功にならないAjaxを実装する方法と、リクエストを送信しても成功にならないAjaxを実装するための注意事項について説明します。以下は実際的なケースです。

1. 状況の説明: ajax が正常に送信され、バックグラウンドもリクエストに正常に応答し、JSON データが返されました。Chrome を介してリクエストを監視することによって、レスポンスの JSON データを確認することもできます。成功メソッド、実行エラーメソッド

フロントエンド:

$.ajax({
 type : "get",
 data : {'dbId':node.dbId,'viewId':node.id,'date':new Date()},
 url : "${ctp}/ViewOperate/ShowViewSql",
 dataType : "json",
 success : function(data){
   console.log(data);
   layer.alert(data,{
     skin: 'layui-layer-molv'
   });
 }
 error : function(data){
   layer.alert("进入了error方法",{
     skin: 'layui-layer-molv'
   });
 }
});
ログイン後にコピー

バックエンド:

@RequestMapping(value="/ShowViewSql",method=RequestMethod.GET)
@ResponseBody
public String showCreateViewSql(@RequestParam(value="dbId",required=false)Integer dbId,
   @RequestParam(value="viewId",required=false)Integer viewId) {
 return "abc";
}
ログイン後にコピー

原因: バックグラウンドから返された JSON データが純粋な String 型の場合object、フロントエンドのdataType 属性がjsonに設定された後、Stringオブジェクトによって変換されたjsonデータ形式は標準のjson形式ではないとみなされるため、エラーに対応するメソッドが実行されます。

解決策: バックエンドを変更する必要はありません。フロントエンドの Ajax リクエストの dataType 属性を text に設定するだけです

$.ajax({
   type : "get",
   data : {'dbId':node.dbId,'viewId':node.id,'date':new Date()},
   url : "${ctp}/ViewOperate/ShowViewSql",
   dataType : "text",
   success : function(data){
     console.log(data);
     layer.alert(data,{
       skin: 'layui-layer-molv'
     });
   }
   error : function(data){
     layer.alert("进入了error方法",{
       skin: 'layui-layer-molv'
     });
   }
});
ログイン後にコピー

特殊なケース: バックエンドによって返される JSON 番号が次のような場合"1" 、 "2"、 "22"、 "232123"、 "-1"、 "232123.44" 数値 文字列 が設定されている場合、フロントエンドの dataType 属性が に設定されている場合、正常に成功メソッドを入力できますjson 理由は不明です。

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

Ajax とフォームを使用して登録ユーザーに必要な機能を実装する

Ajax を使用して WeChat Web ページの承認されたログインを実装する手順 (コード付き)

以上がリクエストを送信しても成功しないように Ajax を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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