2014-09-02 7 views
1

자바 스크립트 코드를 정의되지. 왜? 아약스 요청에 거짓 AJAX에서 responseText는


나는 비동기를 추가했다. async를 false로 설정하면 호출중인 명령문이 함수의 다음 명령문을 호출하기 전에 완료해야 함을 의미합니다.

이 코드는 작동합니다

function AjaxCheckCuts(ListCuts,cutid) 
{ 
    var request = $.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "Services/Cut.asmx/CheckCuts", 
    async: false, 
    data: "{'cuts':" + JSON.stringify(ListCuts) + ",'idCut':'" + cutid + "'}", 
    dataType: "json"  
    }).responseText; 

    var r = jQuery.parseJSON(request); 
    r = r.d; 
    return r; 
} 

답변

3

가 제대로 작동 웹 서비스인가? HTTP 200을 반환합니까? F12 도구 또는 Fiddler를 사용하여 반환되는 데이터를 볼 수 있습니까?

$.ajax()은 지연됩니다. 비동기 호출이 완료되면이를 실행하기 위해 done 메소드를 정의하십시오. 을 반환하는 이유는 responseText 속성이 없기 때문입니다.

이 시도 :

var cutid = $(th).attr("data-cutid"); 

var request = $.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "Services/Cut.asmx/CheckCuts", 
    data: "{'cuts':" + JSON.stringify(ListCuts) + ",'idCut':'" + cutid + "'}", 
    dataType: "json" 
}); 

request.done(function(result){ 
    alert(result); 
});