サーブレットが Ajax と対話するときに status=parsererror が常に報告される問題の解決策

亚连
リリース: 2018-05-22 16:17:15
オリジナル
1732 人が閲覧しました

この記事では主に、サーブレットと Ajax の間の対話で常に status=parsererror を報告するための解決策を紹介します。これは非常に優れており、必要な友人は参照できます。

理由: サーブレットによって返されるデータは次のとおりです。 Json 形式ではありません

1. JS コードは次のとおりです:

var jsonStr = {'clusterNum':2,'iterationNum':3,'runTimes':4};
    $.ajax({
      type: "post",
      //http://172.22.12.135:9000/Json.json
      url: "/LSHome/LSHome",
      dataType : 'json',
      data : jsonStr,
      success: function(data,textStatus){
        if(textStatus=="success"){ 
          alert("创建任务操作成功"+data);      
        }        
      },
      error: function(xhr,status,errMsg){
        alert("创建任务操作失败!");
      }
    });
ログイン後にコピー

2. 上記の URL は /LSHome/LSHome (プロジェクト名は LSHome) であることに注意してください。 .xml ファイルで、サーブレットを次のように設定します。

<servlet>
   <servlet-name>LSHomeServlet</servlet-name>
   <servlet-class>com.ys.servlet.LSHomeServlet</servlet-class>
 </servlet>
 <servlet-mapping>
   <servlet-name>LSHomeServlet</servlet-name>
 <url-pattern>/LSHome</url-pattern>
ログイン後にコピー

3. サーブレットのコードは次のとおりです。

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //聚类数量
    String clusterNum = request.getParameter("clusterNum");
    //迭代次数
    String iterationNum = request.getParameter("iterationNum");
    //运行次数
    String runTimes = request.getParameter("runTimes");
    System.out.println("聚类数量为:"+clusterNum+"---迭代次数:"+iterationNum+"---运行次数:"+runTimes);
    PrintWriter out = response.getWriter();      
    out.write("success");
    out.close();  
  }
ログイン後にコピー

4. その結果、 ajax メソッド、および status=parsererror

xhr = Object {readyState: 4, responseText: "success", status: 200, statusText: "OK"}
ログイン後にコピー

5. 解決策:

理由は、応答オブジェクトを通じて返されるデータ形式が間違っているためです

 PrintWriter out = response.getWriter();
String jsonStr = "{\"success\":\"OK\"}";
 out.write(jsonStr);
ログイン後にコピー

。皆さんのためにまとめたものです。今後皆さんのお役に立てれば幸いです。

関連記事:

PHP+ajaxニュースデータを取得する場合の詳細説明

PHP+AJAX 投票マシン機能の実装方法

PHPがヘッダー(ケース)を取得する方法アヤックス

以上がサーブレットが Ajax と対話するときに status=parsererror が常に報告される問題の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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