2013-01-04 3 views
0

가능한 복제를 사용하여 액세스하지 :
Accessing JSON service from localhost or file://JSON 파일은 자바 스크립트

<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script> 
<script> 
$.getJSON('http://game4u.comuf.com/songs.json', function(data) { 

    var output = data.music[0].url; 
    document.getElementById("placeholder").innerHTML = output; 

}); 
</script> 

하지만 내 JSON 파일 (음악 [0] .URL)는 브라우저 경우에 표시되지 않습니다 나는 이걸 달린다. 웹 사이트와 동일한 서버가 아닌 로컬에서 HTML을 실행하고 있습니다.

+2

JSON이 유효하지 않습니다. 거기에 왜 이스케이프가 필요한 문자가 있습니다. 왜 당신의 URL에'\\ '가 있습니까? – Musa

+0

도와주세요. 나는이 JSON 물건에 새로운 오전 : –

답변

2

웹 사이트와 동일한 서버가 아닌 로컬에서 HTML을 실행하고 있습니다.

그게 문제 일 것입니다. getJSON은 "ajax"호출이고 그 값은 Same Origin Policy으로 제한됩니다. 로컬 파일 시스템은 http://game4u.comuf.com/songs.json과 같은 출처가 아닙니다 (일부 브라우저는 로컬 파일 시스템을 과 일치한다고 간주하지만 대부분입니다).

콘텐츠를 으로 제어하는 ​​경우 JSON 대신 JSON-P을 사용할 수 있습니다. JSON-P는 SOP에서 작동합니다. 또 다른 옵션은 Cross-Origin Resource Sharing이며, 서버 종료가 무언가 (이 경우 원점 "null"에 대한 액세스 권한 부여)를 요구하고 또한이를 지원하는 브라우저를 사용해야합니다 (모든 현대식 브라우저는 작동합니다. IE9는 작동하는 경우에만 작동합니다.) 사실 주위에 XHR 객체 대신 XDR을 사용해야하며, jQuery가 수행하는 플러그인이 있지만이 작업은 사용자를 대신하지 않습니다.


별도로 무사가 지적했듯이 JSON이 유효하지 않습니다. URL에서 백 슬래시를 수정 한 경우 (슬래시 [/], 백 슬래시 [\]가 아님), 목록 끝에있는 후속 ,을 제거하면 JSON에서 유효하지 않습니다.

+0

그 지적을 주셔서 감사합니다. T.J. 차우더와 무사가 고마워. 당신은 정말 초보자를 도왔습니다 :) –

관련 문제