ホームページ > バックエンド開発 > PHPチュートリアル > Ajaxリクエストの送信は成功したが失敗する場合の解決方法

Ajaxリクエストの送信は成功したが失敗する場合の解決方法

小云云
リリース: 2023-03-19 15:20:01
オリジナル
3121 人が閲覧しました

この記事は主に、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";
}
ログイン後にコピー

原因: フロントエンドの dataType 属性が設定された後、バックグラウンドによって返された json データが純粋な String 型オブジェクトである場合。 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 に設定されている場合は正常に成功メソッドを入力できます。理由は不明です。

関連する推奨事項:

Ajax バックグラウンド成功から送信された JSON データの問題の簡単な分析

ThinkPHP ページジャンプの成功とエラー方法の概要_PHP チュートリアル

jQuery.ajax での成功と完了の違い

以上がAjaxリクエストの送信は成功したが失敗する場合の解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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