即使是本地文件,跨域ajax也会失败

che*_*ine 8 html javascript ajax jquery

我有一个带有ajax函数的本地 html文件,试图从x.com中提取xml内容.运行时的文件仅适用于IE,并且在firefox和safari浏览器上失败.当然,这可能是因为同源政策.但是,我从某人那里听说,对于使用file://协议加载的脚本,这个相同的原始策略将不适用.是真的,如果是的话,我的本地html文件会出现什么问题?

Nic*_*ver 8

它确实应用于本地文件,将它们视为单独的域(这取决于浏览器,如您所见).例如,在Chrome中,您可以使用命令行启动它以允许此操作:

chrome.exe --allow-file-access-from-files
Run Code Online (Sandbox Code Playgroud)


Sha*_*rad 5

在Mozilla文件中,uri甚至有更严格的相同来源策略限制.. https://developer.mozilla.org/En/Same-origin_policy_for_file:_URIs 但是您可以通过以下方式请求全局访问权限来覆盖:

 if (navigator.userAgent.indexOf("Firefox") != -1) {
            try {
                netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
            } 
            catch (e) {
                alert("Permission UniversalBrowserRead denied -- not running Mozilla?");
            }
        }
Run Code Online (Sandbox Code Playgroud)