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 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | var jsonStr = {'clusterNum':2,'iterationNum':3,'runTimes':4};
$.ajax({
type: "post" ,
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 :
1 2 3 4 5 6 7 | <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 :
1 2 3 4 5 6 7 8 9 10 11 12 | 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
1 | 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
<. 🎜>
1 2 3 | 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!