2014-09-29 2 views
1

요청시 json 형식의 데이터를 반환하는 일부 게임 API로 작업하고 있습니다.jQuery ajax 구문 분석 사용 안 함

api가 다른 도메인에 있으므로 crossType 정책으로 인해 dataType : "json"을 사용할 수 없습니다 (오류 : 요청되지 않은 'Access-Control-Allow-Origin'헤더가 없습니다. 의지). 그래서 대신 jsonp를 사용하려고했습니다. jsonp를 사용할 때 jQuery는 parseError를 던집니다. 서버의 데이터는 jsonp가 아니고 jsonp가 아니기 때문입니다.

나는 이미 jsonpCallback과이 종류의 모든 것을 시도했다 - 서버는 여전히 json을 리턴한다.

또한 xhr.responseText를 사용해 보았지만 비어 있습니다. jQuery에 데이터를 구문 분석하지 않도록 지시하는 방법이 있나요? 수동으로 문자열을 구문 분석 할 수 있습니다. 서버가 올바르게 응답하도록 jsonp에 데이터 유형을 설정해야합니다.

그리고 서버에서 데이터가 반환됩니다. 내가 비어 있지 않다는 것을 안다. 크롬에서 개발자 도구를 사용하여 검사 할 수있다.

내 코드 :

$.ajax({ 
    url: "http://eu.battle.net/api/wow/character/turalyon/Blargh", 
    type: "get", 
    data: { fields: "quests" }, 
    dataType: "json", 
    success: function(data, textStatus, jqXHR){ 
     if(typeof func === "function"){ 
      func(data); 
     } 
    }, 
    error: function(jqXHR, textStatus, errorThrown){ 
     contentField.html(textStatus); 
    } 
}); 

답변

1

jQuery를 데이터를 구문 분석하지 않습니다. JSONP는 해당 함수 호출만으로 구성된 스크립트에서 함수 호출에 대한 인수로 데이터를 인코딩 한 다음 문서에 스크립트 요소를 추가하여 데이터를로드함으로써 작동합니다.

자바 스크립트 엔진이 자바 스크립트를 실행하려고합니다.

JSONP로로드하려고 시도하면 임의의 데이터에 액세스 할 수 없습니다. 요청한 사이트는 JSONP 형식으로 제공해야합니다. 다른 것은 똑같은 기원 정책을 전혀 무의미하게 만들 것입니다.

+0

추가 정보 : [JSONP on Wikipedia] (http://en.wikipedia.org/wiki/JSONP) – Jeach