jQuery JSON 응답은 항상 ParseError를 트리거합니다.



1 Answers

jQuery 1.5로 업그레이드하자마자 동일한 오류가 발생합니다. JQuery 1.5와 호환되지 않는 jquery 유효성 검사 플러그인을 사용하고 있기 때문에 제 문제가있는 것으로 나타났습니다. jquery 유효성 검사 플러그인을 제거하면 dataType json으로 $ .ajax ()가 올바르게 작동합니다.

jquery 유효성 검사 플러그인 비 호환성에 대한 자세한 내용은 http://bugs.jquery.com/ticket/8118 하십시오.

Question

jQuery 및 JSON을 사용하여 기본 작업을 수행하려고합니다. JSON 응답을 내 플레이 프레임 워크 응용 프로그램에서 받아들이는 데 어려움을 겪고 있습니다. 다음은 여전히 ​​오류를 생성하는 코드의 단순화 된 버전입니다.

$.ajax({
    type: 'POST',
    url: "@{FrontEnd.isUsernameAvailable()}",
    data: "name=thisnameisavailable",
    cache: false,
    success: function(data) {
        console.log("Success... ");
    },
    error: function(jqXHR, textStatus, errorThrown) {
        console.log("Error... " + textStatus + "        " + errorThrown);
    },
    dataType: 'json'
});

오류 콜백은 항상 트리거됩니다. 그것은 표시

오류 ... parsererror jQuery15001997238997904205_1298484897373이 (가) 호출되지 않았습니다.

Firebug를 통해 반환 된 JSON을 검사하면 오류가 표시되지 않으며 다양한 JSON 보풀 도구도 유효성을 검사합니다. dataType을 "text"로 변경하면 성공을 호출 할 수 있습니다. 하지만 유효 JSON을 반환해야하므로 jQuery 유효성 검사 플러그인의 일부로 isUsernameAvailable 호출을 사용하려고합니다.




urlcallback=? 포함되어 있기 때문에 parseerrorparseerror . callback=? 부품. 이것은 JSONP 기능을 활성화하는 매직 문자열입니다 .

내 서버 측의 REST API가 JSONP에서 JSON으로 변경됨에 따라 반환 된 데이터 형식이 jQuery.getJSON(..) 더 이상 호환되지 않습니다 jQuery.getJSON(..) callback=? . 이 상황에서 jQuery.getJSON(..)success 콜백을 호출하지 않지만 대신 fail 콜백을 호출합니다.

callback=? 을 제거하여이 문제를 해결했습니다. callback=? url 매개 변수의 일부.






Related