2013-12-10 3 views
0

내가 버튼이 있고 버튼에 내가 AJAX 호출을 사용하여 JSON 데이터를 얻기 위해 원 클릭 여기얻기 데이터

function loadXMLDoc() { 
     var request = $.ajax({ 

      url: 'https://api.flightstats.com/flex/airports/rest/v1/json/iata/SAN?appId=952b68c2&appKey=9d5a372da9f88679ac97a60c1e0c58f9', 
      type: 'POST', 
      //data: $("#ganttForm").serialize(), 
      dataType: 'json', 
      accepts: { 
       json: "application/json" 
      }, 
      headers: { 
       Accept: "application/json; charset=utf-8", 
       "Content-Type": "application/json; charset=utf-8" 
      }, 

      success: function (data) { 
       alert('success') 
       var data1 = $.parseJSON(data); 
       alert(data1); 
       //console.log(window.JSON.parse(data)); 
       //alert(obj.ganttdata) 
       //console.log($.parseJSON(data.d)); 
       //console.log(JSON.stringify(data1)); 
       createEmptyGanttChart1(data1); 

      }, 

      complete: function() { 
       alert('complete') 
       // console.log('complete 1!!!!!!!!!!!!!!!!!!!!!!!!'); 
      }, 
      failure: function() { 
       alert('failure') 
       // console.log('complete 1!!!!!!!!!!!!!!!!!!!!!!!!'); 
      } 
     }); 
    } 
+0

변화 같은 것을 시도? – thefourtheye

+0

im은 JSON 데이터를 가져 오지 않습니다. – Cronaldo

+0

'https : // api.flightstats.com'는 귀하의 페이지와 동일한 도메인입니까? – nnnnnn

답변

1

를 그 작동하지 click.But 내가 버튼에 노력 코드입니다 same-origin policy을 (를) 위반하여 작동하지 않는 교차 도메인 Ajax 요청을하려고합니다.

그러나, api.flightstats.com 사이트는 JSONP를 지원하는 것처럼 보인다 - 나는 당신의 URL을 수정할 때, 적어도이에 :

https://api.flightstats.com/flex/airports/rest/v1/jsonp/iata/SAN?appId=952b68c2&appKey=9d5a372da9f88679ac97a60c1e0c58f9 
// Note the "p" that I've added here -----------------^ 

... 그것은 JSONP 형식으로 응답을 반환. 그래서 그 대신이 코드를 시도 :

var request = $.ajax({ 

     url: 'https://api.flightstats.com/flex/airports/rest/v1/jsonp/iata/SAN?appId=952b68c2&appKey=9d5a372da9f88679ac97a60c1e0c58f9', 
     type: 'POST', 
     //data: $("#ganttForm").serialize(), 
     dataType: 'jsonp', // NOTE the type is 'jsonp' not 'json' 

     success: function (data) { 
      alert('success') 
      alert(data); 
      createEmptyGanttChart1(data); // NOTE no need to parse data 

     }, 

     complete: function() { 
      alert('complete') 
      // console.log('complete 1!!!!!!!!!!!!!!!!!!!!!!!!'); 
     }, 
     failure: function() { 
      alert('failure') 
      // console.log('complete 1!!!!!!!!!!!!!!!!!!!!!!!!'); 
     } 
    }); 

데모 : http://jsfiddle.net/Lc8H8/ jQuery를 자동에 대한 응답을 분석하고 data 이미 객체가 될 것이기 때문에 $.parseJSON(data)를 사용할 필요가 없다는 것을

참고.

+0

여전히 작동하지 않습니다 ... :( – Cronaldo

+0

@AnilkumarM 콘솔에 오류가 있습니까? – Praveen

+0

@AnilkumarM - 내가 보여준 코드로 작업 데모를 제공했습니다. "성공 함수가 호출되지 않았 음을 의미합니까? ...? – nnnnnn

0

당신이 작동하지 않는 무엇을 의미합니까이

dataType: 'json', 

dataType: 'jsonp',