2012-10-29 4 views
0

안녕하세요 jquery get 함수에서 반환 값을 얻으려고 노력하고 있습니다. 성공에 대한 요청 가져 오기.Jquery Get 함수에서 값을 반환

나는 여러 가지 방법을 이미 시도했지만 성공하지 못했습니다. 내가 시도를 두 가지 형태는 다음과 같습니다

1)

GetResultOutput = function() { 
    var outPut = "No Data Found"; 
    var test = test(); 
    return test["outPut"]; 
} 

test = function() 
{ 
    outPut = "No Data Found"; 
    **return** $.ajax({ 
     type: "GET", 
     url: serviceUrl, 
     dataType: "xml", 
     success: function (xml) { 
        outPut = "done"; 
     } 
    }); 
} 

2)

GetResultOutput = function() { 
    outPut = "No Data Found"; 
    $.ajax({ 
     type: "GET", 
     url: serviceUrl, 
     dataType: "xml", 
     success: function (xml) { 
      outPut = "done"; 
     } 
    }); 
    return outPut; 
} 

그러나 그들 모두가 나에게 어떤 결과를 제공하지 않습니다 ..

2 일이 날을 출력 데이터가 없으므로 및 인터넷 검색시 하나를 선호 1 일이 ... 대신 출력을 얻을 후 처리하는 동안의 정의되지 않은

+0

하는 경우 이 호출을 동기시키고 싶다면, AJAX는 작업을위한 잘못된 도구입니다! – Jamiec

답변

0

또한 사용하여 Ajax 호출 동기를 만들 수 있습니다

$.ajax({ 
     type: "GET", 
     url: serviceUrl, 
     async: false, 
     dataType: "xml", 
     success: function (xml) { 
      outPut = "done"; 
     } 
    }); 
+0

실례합니다. 실크 관리. 감사합니다. SilkAdmin – Luckyy

+0

요청을하는 동안 브라우저가 잠겨 있습니다. 처음에는 아약스의 목적을 무효로합니다. – Jamiec

+0

thats true..it 일어날 수 있습니다 ... 그래서 u는 아래 fn u를 제공하는 것이 좋습니다. 그런 식으로하면 내가 오류를 얻으려고했는데 – Luckyy

1

같은 결과가 좋아 :

:

var output = GetResultOutput(); 
process(output); 

당신은 같은 콜백으로 처리를 전달할 수

var GetResultOutput = function (callback) { 
    $.ajax({ 
     type: "GET", 
     url: serviceUrl, 
     dataType: "xml", 
     success: function (xml) { 
      callback(xml); 
     } 
    }); 
}; 

// usage: 
GetResultOutput(process); 
0

Ajax 요청은 비동기식입니다. 즉, 호출에서 데이터를 즉시 "반환"할 수 없습니다. $.ajax 모든 형태의 하나 이상의 콜백을 이유는 데이터가 수신 될 때 호출 될, 또는 오류 등 당신의 방법과 같이해야 함을 의미

발생 콜백처럼 찾고

GetResultOutput = function (callback) { 
    $.ajax({ 
     type: "GET", 
     url: serviceUrl, 
     dataType: "xml", 
     success: callback 
    }); 
} 

를 :

function callback(xml) 
{ 
    console.log('done: ' + xml); 
} 
+0

tnx Jamiec, 비동기로 만드는 편이 낫다. – Luckyy

관련 문제