2012-03-07 4 views
1

템플릿 페이지에서 HTML을로드 한 다음 XML에서 콘텐츠를로드하는 웹 사이트를 개발 중입니다. 예를 들어 이것들은 document.ready 함수에서 호출됩니다.Google 크롬 - 실패한 GET ajax 요청

$.ajax({ 
       type : "GET", 
       url : "template.html", 
       dataType : "html", 
       success : function(html) { 
        var ndoc = document.createElement('html'); 
        ndoc.innerHTML = html; 
        page = $('body', ndoc); 
        $('body').html(page.html()); 

        $.ajax({ 
         type : "GET", 
         url : "XML/content.xml", 
         dataType : "xml", 
         success : function(xml) { 
          page = $(xml).find('chisiamo').find('dialogue')[0]; 

          setupPage(page); 
         } 
        }); 

       } 
      }); 

이것은 Firefox와 Safari에서 잘 작동합니다. 하지만 크롬에서는 template.html을로드하려고 할 때 'Access-Control-Allow-Origin이 Origin의 null을 허용하지 않습니다.'라는 메시지가 표시됩니다. 이 문제를 어떻게 해결할 수 있습니까? 고마워요.

+0

그 스크린 샷을 보여 주시겠습니까? – zerkms

+1

스크린 샷? 이것은 Chrome 콘솔에서 얻을 수있는 정확한 문자열입니다. 'XMLHttpRequest는 file : ///Users/***/Dropbox/CorpoMusicale/template.html을로드 할 수 없습니다. Origin Null은 Access-Control-Allow-Origin에 의해 허용되지 않습니다. ' – Lorenzo

+0

본 적이 있습니까? http://stackoverflow.com/questions/5224017/origin-null-is-not-allowed-by-access-control-allow-origin-in-chrome-why – Igor

답변

0

보십시오이 인수 구글 크롬을 시작하려면 :

google-chrome --disable-web-security --allow-file-access-from-files 
+0

이 웹 사이트가 Google 크롬에서 로컬로 작동하도록해야합니다. 귀하가 게시 한 주장을 알고 있지만 내 요청을 변경하는 방법이 없으므로 시작 옵션이없는 표준 Chrome에서 작동합니까? – Lorenzo

+0

그것은 '보안'때문에 생각하지 않습니다. 파일을 http 서버에 저장하려고 시도 했습니까? – Damoun

0
당신은 파일에서 파일을 읽을 그것을 액세스 할 수 있도록하기 위해 크롬 웹 앱을 만들고 매니페스트에 권한을 설정 할 수 있어야한다

: // 계획.

http://code.google.com/chrome/extensions/manifest.html

+0

좀 더 자세하게 말씀해 주시겠습니까? 나는 정말로 전체적인 호환성 문제에 접근하고 있으며,이 경우 꽤 단서가 없다. – Lorenzo

+0

매니페스트를 작성하고 첫 번째 HTML 요청을 작동 시키지만 XML 파일에서로드 할 수는 없습니다. – Lorenzo

0

당신은 당신이 매니페스트에 요청하는 페이지에 권한을 추가해야합니다. 또한 대신 $ .getJSON을 사용해보십시오.)