Maison > interface Web > js tutoriel > Solution au problème que status=parsererror signale toujours lorsque Servlet interagit avec Ajax

Solution au problème que status=parsererror signale toujours lorsque Servlet interagit avec Ajax

亚连
Libérer: 2018-05-22 16:17:15
original
1771 Les gens l'ont consulté

Cet article présente principalement la solution au problème de toujours signaler status=parsererror lorsque Servlet interagit avec Ajax. Il est très bon et a une valeur de référence. Les amis dans le besoin peuvent s'y référer

<.> Raison : Les données renvoyées par la servlet ne sont pas au format Json

1 Le code JS est :

var jsonStr = {&#39;clusterNum&#39;:2,&#39;iterationNum&#39;:3,&#39;runTimes&#39;:4};
    $.ajax({
      type: "post",
      //http://172.22.12.135:9000/Json.json
      url: "/LSHome/LSHome",
      dataType : &#39;json&#39;,
      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 Il y a toujours une erreur lors de la saisie de la méthode ajax, 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 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

Ce qui précède est le mien, je l'ai compilé pour tout le monde, j'espère qu'il sera utile à tout le monde à l'avenir.

Articles associés :

PHP+

ajaxExplication détaillée du cas d'obtention de données d'actualité

PHP+AJAX Comment implémenter la fonction de vote


Comment obtenir les en-têtes (cas) en

ajax en PHP

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