Maison > interface Web > js tutoriel > le corps du texte

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

php中世界最好的语言
Libérer: 2018-04-02 13:33:32
original
4847 Les gens l'ont consulté

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("创建任务操作失败!");
      }
    });
Copier après la connexion

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>
Copier après la connexion

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();  
  }
Copier après la connexion

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"}
Copier après la connexion

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);
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal