2014-12-10 4 views
0
$.namespace('MyClass'); 
MyClass.setDataResponse: function(URL, dataObj, successcallback, failurecallback){ 
     $.ajax({ 
      url: URL, 
      async: false, 
      type: 'POST', 
      data: dataObj, 
      dataType: "json", 
      contentType: "application/json; charset=utf-8", 
      success : successcallback, 
      error : failurecallback 
     }); 
    } 

var dataObj = '{"id": "5"}'; 
function SuccessCall(res){ 
    return res; 
} 
var getdata = MyClass.setDataResponse('requesturl', dataObj, SuccessCall); 

console.log(getdata); 

getdata가 정의되지 않은 이유 ... 성공한 경우 return obj입니다. 복귀 GetData의 개체로 달성 할 수있는 방법 변수가 정의되지 않은 경우 ajax 호출시

..

+0

당신은 없다'Ajax 호출에서 return'을 수행 할 수 있습니다 - 당신은 콜백을 사용합니다. – tymeJV

+3

참고로, 함수에'return' 문이 없으면 항상'undefined'를 반환합니다. 'MyClass.setDataResponse'는'return' 문을 가지고 있지 않으므로'undefined'를 리턴 할 것입니다. 심지어 비동기 함수 호출 없이는 그럴 것이고 놀랄 일이 아닙니다. –

+1

'async : false'를 사용하지 마십시오. – Bergi

답변

0

당신의 응답 캔트 반환 값을 구한 후 실행되는 기능.

$.ajax({ 
    'url' : 'someurl', 
    'success' : function(response) { 
     // cant return values; 
     // it can work only inside of here 
    } 
}); 

너무

function dowork(response) { 
     // cant return values; 
     // it can work only inside of here  
} 

$.ajax({ 
    'url' : 'someurl', 
    'success' : dowork 
}); 
관련 문제