這次帶給大家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 如下:
<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、 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中文網其它相關文章! 推薦閱讀:
以上是Ajax互動時被報status=parsererror錯誤如何解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!