2013-04-18 2 views
0

일부 데이터를 검색하려면 REACTOME REST API에 액세스하고 싶습니다. getJSON()을 사용하여 JSON 데이터를 가져옵니다. 그러나 나는 모든 웹 사이트마다 이름이 다르므로 callback function name을 모른다.getJSON()의 JSON 콜백 함수 이름

작동하지 않습니다 다음은

$.getJSON('http://reactomews.oicr.on.ca:8080/ReactomeRESTfulAPI/RESTfulWS/frontPageItems/homo+sapiens?jsoncallback=?', function(data) { 

console.dir(data); }); 

나는 우리가 콜백 함수를 결정하기 위해 jQuery를에 떠날 수있는 jQuery를 문서 상태 때문에 너무 AJAX를 사용했습니다.

$.ajax({ 
    type: 'GET', 
    url: 'http://reactomews.oicr.on.ca:8080/ReactomeRESTfulAPI/RESTfulWS/frontPageItems/homo+sapiens', 
    dataType: 'jsonp', 
    success: function(data) { 
     console.dir(data); 
    }, 
    error: function(e) { 
     console.log("error"); 
+0

흠입니까? – 1337holiday

+1

요청 헤더'Accepts : application/json'을 보내야합니다. –

+0

@ 1337holiday 기본값은 XML입니다. JSON을 데이터 유형으로 설정할 수도 있습니다. JSON 파일은 Chrome 개발자 콘솔에 표시된대로 다운로드 중입니다. – dejavu

답변

1

모든 징후가 JSONP를 지원하는 서비스 하지을 가리 킵니다.

jQuery의 실제 오류 : TypeError: Property 'message' of object Error: jQuery191005664544063620269_1366270377427 was not called is not a function.

JSONP 요청을 발행 할 때 서버에서 응답을 검사하면 이 아니며 콜백 기능으로 포장 된이 아닙니다. 그래서이를 반환 ...

[ { 
    "dbId" : 109581, 
    "displayName" : "Apoptosis", 
    "created" : { 
    "dbId" : 109608, 
.... 

그러나이 같은 대신 할 필요가 JSONP를 지원하기 위해 : 당신은 same origin security 제한을 처리 할 수있는 다른 방법을 찾아야합니다

jQuery191005664544063620269_1366270377427([ { 
    "dbId" : 109581, 
    "displayName" : "Apoptosis", 
    "created" : { 
    "dbId" : 109608, 
....) 

.

가장 간단한 옵션은 브라우저를 통해 직접 이동하는 대신 서버 측 프록시를 사용하는 것일 수 있습니다. 즉, jQuery는 자신이 제어하는 ​​서버 (HTML을 제공하는 것과 동일한 도메인에있는 것이 바람직 함)를 호출 한 다음 서비스 요청을 전달하고 적절한 응답을 제공합니다. 또는 클라이언트에서 동적 일 필요가없는 경우 서버 측 스크립트 (ASP.NET, PHP 등)

+0

사람들이 CORS라는 도메인 간 요청을 중지하는 것을 선호한다. CORS는 도메인 간 요청을 수행하는 경우 아주 특정한 메커니즘입니다. CORS를 사용하는 대신 요청을 프록시 처리하는 방법도 있습니다. CORS를 사용하는 대신 JSONP를 사용하는 방법도 있습니다. – slebetman

+0

@slebetman 우리가 소원을주고있는 동안 라인강 유역에 집을 가져갈 수 있습니까? 아니? 오 잘, 적어도 내 대답을 편집 할 수 있습니다 ... – Snixtor

0

웹 사이트가 jsonp를 지원하지 않는 경우 서버 측 스크립트를 사용하는 것이 좋습니다. 내가 링크에 갈 때 스크립트는 여기 내가 볼 모두 XML이 아닌 JSON, 그 이유 인 예를 사용하여 PHP

http://momotaroblogger.blogspot.co.nz/