2014-09-23 5 views
-1

JSON 웹 서비스 및 AJAX 기능과 관련하여 질문이 있습니다. 아래 JavaScript 함수를 선언했습니다.JavaScript 기능 외부에있는 변수에 JSON 값 할당

function setJsonSer(){ 

      formData = { 
       'Email': '[email protected]', 
       'Password': 'russell1234', 
       'URL': getVaria() 
      }; 

       $.ajax({ 
       url: "/APIWebService.asmx/AnalyticsDataShowWithPost", 
       type: 'POST', 
       data: formData, 
       complete: function(data) { 
        alert("This is Set JSON In "+JSON.stringify(data)); 
       } 

      }); 

      $.ajax({ 
       url: "/APIWebService.asmx/AnalyticsDataShowWithPost", 
       type: 'GET', 
       data: formData, 
       complete: function(data) { 
        alert("This is Get JSON Out "+JSON.stringify(data)); 
       } 
      }); 

} 

당신이 볼 수 있듯이 나는 JSON.stingify(data) 문을 경고하고 난이 예상대로 나에게 결과를 주었다.

이제 JSON 응답을 SetJsonSer() 함수 외부에있는 변수에 할당하는 SetJsonSer() 함수에서 JSON 응답을 가져 오려고합니다.

이미 return JSON.stringify(data))과 JSON.stringify (data) 문을 시도했지만 SetJsonSer() 함수에서 결과를 제외했습니다.

출력은 아래의 변수에서 가져와야합니다.

function Load(){ 

// ----------------------------------------- ------

setJsonSer(); 

var labels = new Array(); 
var values = new Array(); 
var catogories = new Array(); 
var arrayOfArray = new Array(); 

var rowData = "return value of JSON.stringify(data)"; 

이 변수는 HighCharts를 사용하여 차트를 그리는 쿼리로 사용됩니다. 그래서 누군가가 내게 SetJsonSer() 함수의 결과를 얻는 방법을 알려줄 수 있습니까?

감사와 관련, Chiranthaka

답변

2

당신은 AJAX의 비동기 자연과 혼합 조금 있어요.

AJAX 이벤트가 발생하지만 코드를 실행하는 동안 일시 중지가 발생하지 않으므로 콜백을 구현해야합니다.

이 코드는 그리 좋지는 않지만 데이터를 처리하는 방법에 대한 아이디어를 제공해야합니다.

function setJSONSer() { 
    formData = { 
     'Email': '[email protected]', 
     'Password': 'russell1234', 
     'URL': getVaria() 
    }; 

    $.ajax({ 
     url: "/APIWebService.asmx/AnalyticsDataShowWithPost", 
     type: 'POST', 
     data: formData, 
     complete: function(data) { 
      console.log("Successfullly set JSON!"); 
      getJSONSer(); 
     } 
    }); 
} 

function getJSONSer() 
{ 
    $.ajax({ 
     url: "/APIWebService.asmx/AnalyticsDataShowWithPost", 
     type: 'GET', 
     complete: function(data) { 
      //alert("This is Get JSON Out "+JSON.stringify(data));# 
      Load(data); 
     } 
    }); 
} 

function BeginLoad() 
{ 
    setJSONSer(); 
} 

function Load(data) 
{ 
    setJsonSer(); 

    var labels = new Array(); 
    var values = new Array(); 
    var catogories = new Array(); 
    var arrayOfArray = new Array(); 

    var rowData = "return value of JSON.stringify(data)"; 
} 

BeginLoad(); 
+0

확실히 맞습니다! 나는 AJAX 비동기 성질에 익숙하지 않다. 그래서 그것은 내 문제입니다. 그러나 알기가 가장 좋은 것입니다. 고마워. 나는 이것을 시도 할 것이다. – ChiranSJ

+0

Load() 함수에 작은 질문이 있습니다. function Load (data) { setJsonSer(); var labels = new Array(); var values ​​= new Array(); var catogories = new Array(); var arrayOfArray = new Array(); var rowData = "JSON.stringify (데이터)의 반환 값"; }''var rowData = '에 대한 값으로 무엇을 넣어야합니까? – ChiranSJ

+0

rowData = data; – Doug