这次给大家带来Ajax交互时被报status=parsererror错误如何解决,解决Ajax交互时报status=parsererror错误的注意事项有哪些,下面就是实战案例,一起来看一下。
原因:servlet 返回的数据不是 Json 格式
1、JS代码为:
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、注意上面的 url 为 /LSHome/LSHome,(项目名称为LSHome)所以在 web.xml 文件中,配置 Servlet 如下:
LSHomeServlet com.ys.servlet.LSHomeServlet LSHomeServlet /LSHome
3、Servlet 中代码为:
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、结果是一直都是进入到 ajax 方法里面的 error,而且status=parsererror
xhr = Object {readyState: 4, responseText: "success", status: 200, statusText: "OK"}
5、解决办法:
原因是通过 response 对象返回的数据格式不正确,正确方法
PrintWriter out = response.getWriter(); String jsonStr = "{\"success\":\"OK\"}"; out.write(jsonStr);
可以将返回值拼凑成 JSON 数据格式,然后会不会报status=parsererror
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
Atas ialah kandungan terperinci Ajax交互时被报status=parsererror错误如何解决. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
tutorial ajax
Penyelesaian kod kacau Cina Ajax
Apa yang perlu dilakukan jika ajax menghantar aksara Cina yang kacau
Bagaimana untuk menyelesaikan ralat parsererror
Pengenalan kepada hubungan antara php dan front-end
Mengapa pencetak tidak mencetak?
Pengisihan tatasusunan JS: kaedah sort().
Perbezaan antara a++ dan ++a