2011-08-31 3 views
0

JQuery로 XML 파일에 액세스해야합니다. 이 두 가지 방법을 시도했지만 한 브라우저에서 볼 수는 없습니다. 여기JQuery로 XML 구문 분석 브라우저 문제

: 크롬에서

이 작동 :

jQuery.get('fruits.xml', function(data) { 
    alert(data); 
}); 

:

var xml = "<music><album>Beethoven</album></music>"; 
var result = $(xml).find("album").text(); 
alert(result); 

가 지금은 IE에서 잘 작동이 코드와 함께 그것을 사용하려고 문제는,이 두 코드를 함께 넣으면 그 중 하나가 다른 코드에서 작동하지 않는다는 것입니다. 그래서 크롬에서 내가 "fruits.xml"에 접근 할 수없는 상태 "베토벤"에 접근 할 수있을 것하지만 나에게이 오류 제공 : 반면에 IE에서

XMLHttpRequest cannot load file:///C:/Python32/fruits.xml. Origin null is not allowed by Access-Control-Allow-Origin. 

을, 나는 모든 콘텐츠에 액세스 할 수 fruits.xml을 저장하고 변수에 저장하지만 IE에서 작동하는 XML 속성에 액세스해야하는 코드는 Chrome에서 작동하지 않습니다.

위에서 볼 수 있듯이 코드의 두 번째 조각을 사용하여 xml의 내용을 가져오고 코드의 첫 번째 조각을 사용하여 xml의 내용에 액세스합니다. Javascript로 XML에 액세스하는 또 다른 방법이 있습니까? 제 코드가 잘못된 점을 알려주십시오.

도움 말?

+0

첫 번째 예제는 좋지 않습니다. 주요 jQuery 함수는 텍스트를 XML이 아닌 HTML로 구문 분석합니다. 'var result = $ ($ parseXML (xml)). find ("album"). text(); 대신 jQuery의'parseXML()'함수를 사용해야한다. –

답변

1

오류 메시지의 원인은 XHRRequest (The A in * A * JAX)를 file:// URL로 보내는 것입니다. 보안상의 이유로 최신 브라우저에서는이 기능을 사용할 수 없습니다. 대신 file://C:/... 대신 http://localhost/..을 통해 웹 서버 및 페이지에 액세스하도록 설정하십시오.

두 번째 부분에서는 fruits.xml로드를 먼저 테스트해야합니다. 이 파일에 저장된 XML에 오류가 있거나 구조가 예상 한 것과 다릅니다. F12을 누르고 스크립팅 탭으로 이동하여 Start Debugger을 클릭하여 IE에서 JavaScript를 디버깅 할 수 있습니다. 그렇게하면 "작동하지 않는 것"보다 더 나은 오류 설명을 얻을 수 있습니다.

+0

가혹한. Chrome 용 디버거를 사용했지만 IE 용 디버거가 어디 있는지 알지 못했습니다. Chrome에서 F12 키를 계속 눌러 IE 용으로 사용합니다. 글쎄, 내가 다시 확인하고 오류 메시지가 IE에서 자르기 없습니다. 베토벤에 대한 경고가 나오면 아무것도 표시되지 않습니다 (빈 경고 상자). 첫 번째 단락을 시도해 보겠습니다! 음, 내 XML 괜찮아요.:) 가시 여지