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

时间:2010-10-21 14:24:56

标签: javascript jquery html ajax

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

2 个答案:

答案 0 :(得分:8)

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

chrome.exe --allow-file-access-from-files

答案 1 :(得分: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?");
            }
        }