Servlet이 Ajax와 상호작용할 때 status=parsererror가 항상 보고하는 문제에 대한 솔루션

亚连
풀어 주다: 2018-05-22 16:17:15
원래의
1733명이 탐색했습니다.

이 글에서는 주로 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 투표기 기능 구현 방법

PHP가 뉴스 데이터에서 헤더(케이스)를 획득하는 방법 ajax

위 내용은 Servlet이 Ajax와 상호작용할 때 status=parsererror가 항상 보고하는 문제에 대한 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿