Heim  >  Artikel  >  Web-Frontend  >  Lösung für das Problem, dass status=parsererror immer meldet, wenn Servlet mit Ajax interagiert

Lösung für das Problem, dass status=parsererror immer meldet, wenn Servlet mit Ajax interagiert

亚连
亚连Original
2018-05-22 16:17:151731Durchsuche

Dieser Artikel stellt hauptsächlich die Lösung für das Problem vor, dass bei der Interaktion von Servlet mit Ajax immer der Status = parsererror gemeldet wird. Er ist sehr gut und hat Referenzwert.

Grund: Die vom Servlet zurückgegebenen Daten liegen nicht im Json-Format vor

1 Der JS-Code lautet:

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. Beachten Sie, dass die obige URL /LSHome/LSHome ist (der Projektname ist LSHome), also konfigurieren Sie das Servlet in der Datei web.xml wie folgt:

<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. Der Code im Servlet lautet:

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. Das Ergebnis ist, dass immer ein Ajax-Fehler in die Methode eingegeben wird und status=parsererror

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

5. Lösung:

Der Grund ist, dass das über das Antwortobjekt zurückgegebene Datenformat falsch ist. Die richtige Methode ist

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

Das Obige habe ich für alle zusammengestellt. Ich hoffe, dass es in Zukunft für alle nützlich sein wird.

Verwandte Artikel:

PHP+AjaxDetaillierte Erläuterung des Falles des Erhaltens von Nachrichtendaten

PHP+AJAX So implementieren Sie die Abstimmungsfunktion

So erhalten Sie die Header (Groß- und Kleinschreibung) in Ajax in PHP

Das obige ist der detaillierte Inhalt vonLösung für das Problem, dass status=parsererror immer meldet, wenn Servlet mit Ajax interagiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn