이 글에서는 주로 status=parsererror를 보고하는 Servlet과 Ajax의 솔루션을 소개합니다. 매우 훌륭하고 참고할만한 가치가 있습니다. 도움이 필요한 친구들이 참고할 수 있습니다
이유: 서블릿이 반환하는 데이터는 다음과 같습니다. 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입니다.) .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 메소드, status=parsererror
xhr = Object {readyState: 4, responseText: "success", status: 200, statusText: "OK"}
5. 해결 방법:
이유는 응답 객체를 통해 반환된 데이터 형식이 올바르지 않기 때문입니다.
PrintWriter out = response.getWriter(); String jsonStr = "{\"success\":\"OK\"}"; out.write(jsonStr);
모든 사람을 위해 제가 정리한 내용입니다. 앞으로 모든 사람에게 도움이 되기를 바랍니다.
관련기사:
PHP+ajax뉴스 데이터 획득 사례에 대한 자세한 설명
PHP가 뉴스 데이터에서 헤더(케이스)를 획득하는 방법 ajax
위 내용은 Servlet이 Ajax와 상호작용할 때 status=parsererror가 항상 보고하는 문제에 대한 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!