2012-05-01 9 views
1

이상한 (아마도 베팅하지 않을 것임) 문제가 있습니다. 자바 스크립트 메서드를 사용하여 모든 아약스 호출을 호출 할 수 있습니다. 아래를 참조하십시오. JQuery AJAX 응답이 정의되지 않았습니다.

function ajaxCall(url, params) { 
if (params === null) { 
    $.ajax({ 
     type: 'POST', 
     url: url, 
     contentType: 'application/json; charset=utf-8', 
     dataType: 'json' 
    }).success(function(response) { 
     return response; 
    }).error(function(response) { 
     return response; 
    }); 
} else { 
    var data = JSON.stringify(params); 
    $.ajax({ 
     type: 'POST', 
     url: url, 
     data: data, 
     contentType: 'application/json; charset=utf-8', 
     dataType: 'json' 
    }).success(function(response) { 
     return response; 
    }).error(function(response) { 
     return response; 
    }); 
    } 
} 

나는이 방법을 내가 AJAX 호출에서 적절한 응답을 내가 호출이 정의되지 않은 반환되는 응답을 반환 할 때까지 모두가 장미 빛 보이는 전화

?

완성을 위해 제 전화 코드를 제공해 드리겠습니다.

var call = ajaxCall(someUrl, someParams); 

는 명확히하고 내 얘기 일이 전화는 위의 예에서 정의되지 않은 것 이해하고 있는지 확인하기 위해?

+4

을 필요 얻기 위해 작업 할 수 아약스
$이기 때문이다. 이 질문은 예를 들면 다음과 같이 많이 묻습니다. http://stackoverflow.com/questions/10369839/cant-return-xmlhttp-responsetext – DCoder

+0

@DCoder 반복 질문에 감사드립니다. – Deviland

답변

1

이 아약스 호출은 비동기, 지연된 객체를 반환하고 당신은 당신이 올바른지 read on it here

1

ajax 호출은 성격 상으로는 async이며 아무 것도 반환하지 않습니다. 그래서 이런 일을 할 때

요청이 서버로 전송되고 다음 줄이 실행되기 시작합니다. 호출 변수에 값을 넣지 않고; u는이 뭔가를 반환하고있는 async 플래그를 넣어 그래서 만약 일단 .success()는 응답이 성공적인 일 때 실행하는 함수 또는 오히려 콜백을 필요로

또한이

.success(function(response) { 
     return response; 

과 같은 코드는 아무것도하지 않는 것 $.ajax()options ~ true. 또한 nothing/undefined이 리턴됩니다. 당신이 할 수없는

관련 문제