Ajax リクエストは正常に送信されるが失敗する場合の解決策 (画像とテキストのチュートリアル)

亚连
リリース: 2018-05-21 16:28:38
オリジナル
3002 人が閲覧しました

ここで、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 型オブジェクトである場合、フロントエンドの 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'
     });
   }
});
ログイン後にコピー

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

上記は私があなたのためにまとめたものです。関連記事:

struts2およびajaxデータインタラクション(グラフィックチュートリアル)


ネイティブAjax(グラフィックチュートリアル)によって書かれたパルアップロードの例


以上がAjax リクエストは正常に送信されるが失敗する場合の解決策 (画像とテキストのチュートリアル)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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