猿问

XMLHttpRequest原产地NULL不允许访问-控制-允许-file:/到file:/的起始

XMLHttpRequest原产地NULL不允许访问-控制-允许-file:/到file:/的起始

我正在尝试创建一个可以通过启动索引文件在本地下载和运行的网站。

所有文件都是本地文件,没有资源在线使用。

当我尝试使用用于jQuery的AJAXSLT插件来处理带有XSL模板的XML文件时(在子目录中),我会收到以下错误:

XMLHttpRequest cannot load file:///C:/path/to/XSL%20Website/data/home.xml. Origin null is not allowed by Access-Control-Allow-Origin.

XMLHttpRequest cannot load file:///C:/path/to/XSL%20Website/assets/xsl/main.xsl. Origin null is not allowed by Access-Control-Allow-Origin.

发出请求的索引文件是file:///C:/path/to/XSL%20Website/index.html当使用的JavaScript文件存储在file:///C:/path/to/XSL%20Website/assets/js/.

我怎样才能解决这个问题?


繁花不似锦
浏览 552回答 3
3回答

慕婉清6462132

对于不能运行本地Web服务器的情况,可以允许Chrome访问file://通过浏览器开关的文件。经过一番挖掘,我发现这次讨论,其中提到开放帖子中的浏览器开关。运行Chrome实例时:chrome.exe --allow-file-access-from-files对于开发环境来说,这可能是可以接受的,但是很少有其他的。你肯定不想一直这样。这似乎仍然是一个悬而未决的问题(截至2011年1月)。另见:在Chrome中使用本地文件的jQuerygetJSON问题

慕后森

本质上,处理这个问题的唯一方法是在本地主机上运行一个Web服务器,并在那里为它们提供服务。对于浏览器来说,允许ajax请求访问计算机上的任何文件是不安全的,因此大多数浏览器似乎都将“file://”请求视为无源“。同一原产地政策"启动一个web服务器可能非常简单,就像cd正在进入目录中的文件并正在运行:python -m SimpleHTTPServer
随时随地看视频慕课网APP
我要回答