本地XML被Cors政策阻止

时间:2019-03-21 13:13:52

标签: javascript jquery html xml cors

我正在尝试使用JQuery读取XML文件...或者至少,我正在尝试访问它。我有一个像这样的文件系统:

-> Main directory
    -> html
        -> home.html
    -> js
        -> jquery.js
        -> XMLReader.js (made it myself)
    -> XML
        -> test.xml

XMLReader.js是这样制作的:

'use strict'
$(document).ready(function()
{
    $.ajax( 
    {
        type: "GET",
        url: "../xml/test.xml",
        //async: false,
        dataType: "xml",
        success: function(xml)
        {
            console.log("ayy");
        }
    });
});

当我尝试访问位于xml文件夹中的XML文件时,我的请求不断被CORS策略阻止(当我尝试访问LOCAL文件时!)。另一方面,如果我将所有文件都放在同一个目录中(并且当然要更改链接),那么它将起作用。

基本上,CORS政策阻止我组织本地Web应用程序。

有没有办法解决这个问题? CORS Policy不应阻止我尝试读取本地文件,对吧?

1 个答案:

答案 0 :(得分:1)

不同的浏览器对以不同方式从文件系统加载的文件实施相同的起源策略限制。

有些:

  • 阻止访问所有本地文件
  • 阻止访问除HTML文件的同一目录或子目录中的本地文件以外的所有本地文件
  

CORS Policy不应阻止我尝试读取本地文件。

是的,应该。这是一项重要的安全功能。

您不希望有人向您发送HTML文件作为电子邮件的附件,双击将其打开,然后将JavaScript嵌入其中,从您的硬盘读取文件并将其发送给发送电子邮件的人

  

有没有办法解决这个问题?

如果要访问本地文件,则可以:

  • 使本地文件可通过HTTP使用。如果您不想允许其他计算机的访问,则可以运行仅在回送网络接口上侦听的HTTP服务器。
  • 使用可实现我所描述的两种安全策略中较弱者的浏览器,并按照已经发现的方式重新排列文件系统