programing

$.ajax 및 JSONP. 구문 분석 오류 및 탐지되지 않은 구문 오류:예기치 않은 토큰:

easyjava 2023. 9. 11. 22:28
반응형

$.ajax 및 JSONP. 구문 분석 오류 및 탐지되지 않은 구문 오류:예기치 않은 토큰:

우선, 저는 여러 주제에서 제 문제에 대한 답을 찾았지만 제 코드에 맞는 해결책을 찾지 못했습니다.

서블릿에서 답을 구하려고 합니다. 만약 제가 만약에http://XXXZZZ/Servlet/Login?login=pepe&pass=1234예상대로 유효한 JSON을 받았습니다.

{"id":3,"login":"pepe","key":"0D1DBA4BE87E02D43E082F9AA1ECFDEB"}

하지만 $.ajax로 같은 방법을 시도하면 2개의 오류가 발생합니다.

$.ajax({
    type : "Get",
    url :"http://XXXZZZ/Servlet/Login",
    data :"login="+login+"&password="+pass,
    dataType :"jsonp",
    success : function(data){
    alert(data);},
    error : function(httpReq,status,exception){
    alert(status+" "+exception);
    }
});

첫 번째 오류(팝업 창):

parsererror Error: jQuery17104145435250829905_1336514329291 was not called

두 번째 오류(Chrome 콘솔에서):

Uncaught SyntaxError: Unexpected token : Login 1

(그리고 제가 기다리고 있는 JSON도 있습니다.)

추신: dataType : "jsonp"를 사용해야 합니다. 왜냐하면 "json"을 사용하면 교차 도메인에도 문제가 있기 때문입니다.

jsonp를 사용하는 경우 구문이 올바르지 않습니다.

돌아와야 합니다.

myJsonMethod({"id":3,"login":"pepe","key":"0D1DBA4BE87E02D43E082F9AA1ECFDEB"});

또한 axis 요청 옵션에 추가합니다.

jsonp: false,
jsonpCallback: "myJsonMethod"

그렇게

$.ajax({
    type : "Get",
    url :"http://XXXZZZ/Servlet/Login",
    data :"login="+login+"&password="+pass,
    dataType :"jsonp",
    jsonp: false,
    jsonpCallback: "myJsonMethod",
    success : function(data){
        alert(data);},
    error : function(httpReq,status,exception){
        alert(status+" "+exception);
    }
});

(물론 @margoager가 언급한 대로 수정합니다.)

succes : function(data){

오타네요.

success : function(data){

먼저 성공 매개변수에 오타가 있습니다. 끝을 놓쳤습니다.또한 JSONP 요청을 수행할 때 JSON 정보를 JSONP 형식으로 반환해야 합니다. 여기에는 반환 문자열의 일부로 콜백 토큰이 포함되어야 합니다.샘플 JSONP 문자열은 다음과 같습니다.

yourcallbacktoken({"id":3,"login":"pepe","key":"0D1DBA4BE87E02D43E082F9AA1ECFDEB"})

JSONP 사양에 대한 자세한 내용은 이 페이지를 참조하십시오. http://devlog.info/2010/03/10/cross-domain-ajax/

언급URL : https://stackoverflow.com/questions/10507345/ajax-and-jsonp-parseerror-and-uncaught-syntaxerror-unexpected-token

반응형