2014-07-18 2 views
1

이것은 json 파일입니다. http://www.oref.org.il/WarningMessages/alerts.json 대부분의 시간 동안 비어있는 "데이터"배열을 검색하려고합니다.크로스 도메인 - 자바 스크립트를 사용하여 다른 도메인에서 JSON 파일을 가져 오는 방법은 무엇입니까?

전 도메인에 문제가있는 경우 'Access-Control-Allow-Origin'오류 메시지가 표시됩니다.

$.ajax({ 
    url : "http://www.oref.org.il/WarningMessages/alerts.json", 
    type : 'GET', 
    crossDomain: true, 
    data : "json", 
    dataType : "json", 
    success : function(res) { 
    console.log('res',res); 
    } 
}); 

데이터를 가져 오는 데 몇 가지 jsonp 방법을 시도했지만 성공하지 못했습니다. 누군가 내 코드를 수정하도록 도와 줄 수 있습니까?

+0

"성공"기능에 대해'''가 빠졌습니다. – Andy

+0

또한이 사이트는 필요한 최소한의 JSONP를 지원하지 않습니다. – Andy

+0

당신이 정확합니다. 나는 코드를 제대로 복사하지 않았다. 그러면 json으로 어떻게 검색 할 수 있습니까? – Vandervidi

답변

-1

JSONP는 동일한 도메인 정책 인 XMLHttpRequest을 극복하기위한 간단한 트릭입니다. 그래서이 같은 dataType attribut은 "JSONP"에 의해 "JSON"를 대체하려고 :

$.ajax({ 
    url : "http://www.oref.org.il/WarningMessages/alerts.json", 
    type : 'GET', 
    crossDomain: true, 
    data : "json", 
    dataType : "jsonp", 
    success : function(res) { 
     console.log('res',res); 
    } 
}); 

편집 :

해결책이 JSON 파일을 검색 서버 (PHP, 자바)하는 것 및 다시 노출 시키십시오. 그런 다음 jquery 스크립트를 사용하여 서버에서 json을 검색하십시오.

예제 PHP 코드 :

header("Content-Type:application/json"); 
echo file_get_contents("http://www.oref.org.il/WarningMessages/alerts.json"); 
+0

코드가 다른 답변 및 질문은 무엇입니까? –

+2

이것은 서버가 JSONP를 지원하지 않는 경우에만 작동합니다. – Andy

-1

이 코드는 당신이 직면하고있는 오류를 극복한다. dataType은 Jquery가 Ajax 요청으로 간주하기 위해서는 "jsonp"이어야한다. (최신 버전의 Jquery 2.1.1로 테스트되었습니다.)

$.ajax({ 
     url : "http://www.oref.org.il/WarningMessages/alerts.json", 
     type : 'GET', 
     crossDomain: true, 
     data : "json", 
     dataType : "jsonp", 
     success : function(res) { 
      console.log('res',res); 
     } 
     }); 
+0

좋아, 내가 지금 jquery의 최신 버전을 사용하여 코드를 테스트했습니다. 이제 오류가 발생합니다 : "잡히지 않은 SyntaxError : 예기치 않은 토큰 :"어떻게 이것을 극복합니까? – Vandervidi

+0

이것은 서버가 JSONP를 지원하지 않는 경우에만 작동합니다. – Andy

+0

@Vandervidi, 인코딩 문제라고 생각합니다. 나는 그 문제에 대한 해답을 가지고 있지는 않지만 아마도 올바른 문자 인코딩에 대한 응답의 문자 인코딩을 설정하면 문제가 해결 될 수 있습니다. –