Maison  >  Article  >  interface Web  >  Comment résoudre l'erreur status=parsererror signalée lors de l'interaction Ajax

Comment résoudre l'erreur status=parsererror signalée lors de l'interaction Ajax

php中世界最好的语言
php中世界最好的语言original
2018-04-02 13:33:324846parcourir

Cette fois, je vais vous montrer comment résoudre l'erreur status=parsererror signalée lors de l'interaction Ajax. Quelles sont les précautions pour résoudre l'erreur status=parsererror signalée lors de l'interaction Ajax. . Jetons un coup d'oeil.

Cause : Les données renvoyées par la servlet ne sont pas au format Json

Le code JS est :

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. Notez que l'url ci-dessus est /LSHome/LSHome, (le nom du projet est LSHome), donc dans le fichier web.xml, configurez le servlet comme suit :

<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. Le code dans le Servlet est :

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. Le résultat est qu'il y a toujours une erreur en entrant l'ajax méthode et status=parsererror

xhr = Object {readyState: 4, responseText: "success", status: 200, statusText: "OK"}

5. Solution :

La raison est que le format de données renvoyé via le L'objet de réponse est incorrect. La méthode correcte est

 PrintWriter out = response.getWriter();
String jsonStr = "{\"success\":\"OK\"}";
 out.write(jsonStr);

La valeur de retour peut être reconstituée au format de données JSON, puis status=parsererror sera signalé

Je pense que vous maîtrisez le méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de PHP !

Lecture recommandée :

Comment utiliser Ajax pour réaliser une connexion contextuelle

Étapes Ajax+bootstrap pour optimiser le Web expérience utilisateur

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn