2012-03-07 110 views
1

我正在开发一个网站,它从模板页面加载html,然后从XML加载内容。例如在文档中调用这些函数.ready函数谷歌浏览器 - 失败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。但在Chrome中,当它尝试加载template.html时,我得到'原始null不被Access-Control-Allow-Origin'允许。我怎么解决这个问题?非常感谢你。

+0

您能否显示一个截图? – zerkms 2012-03-07 20:44:48

+1

截图?这是我在Chrome控制台中得到的确切字符串:'XMLHttpRequest无法加载file:///Users/***/Dropbox/CorpoMusicale/template.html。 Origin-null不被Access-Control-Allow-Origin允许。' – Lorenzo 2012-03-07 20:46:53

+0

你见过:http://stackoverflow.com/questions/5224017/origin-null-is-not-allowed-by-access-control-allow-origin-in-chrome-why – Igor 2012-03-07 20:49:10

回答

0

尝试使用这个参数启动谷歌浏览器:

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

我需要在谷歌浏览器中使本网站在本地工作。我知道你发布的论点,但是没有办法改变我的请求,所以它可以与没有启动选项的标准Chrome一起使用? – Lorenzo 2012-03-07 20:58:59

+0

我不认为是因为这是'安全'。 你有没有尝试把你的文件放入http服务器? – Damoun 2012-03-07 21:02:09

0

您应该能够建立Chrome Web App和在清单中设置的权限,允许其访问从文件中读取文件://方案。

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

+0

你可以请更具体吗?我真的只是接近整个兼容性的东西,而且在这种情况下非常无能。 – Lorenzo 2012-03-07 21:30:05

+0

我设法构建清单并获得第一个HTML请求,但仍无法从XML文件加载。 – Lorenzo 2012-03-07 23:35:00

0

你必须权限添加到您在清单所请求的页面。也可以尝试使用$ .getJSON代替;)