【问题标题】:jquery - load XML file from local file system without cross domain errorsjquery - 从本地文件系统加载 XML 文件而不会出现跨域错误
【发布时间】:2012-05-05 06:37:45
【问题描述】:

我正在尝试设置一个网站以在本地文件系统上运行并调用 XML 文件,但我遇到了访问控制来源错误:

Access-Control-Allow-Origin 不允许 Origin null。

我尝试将数据类型切换为 jsonp 并将 crossdomain 设置为 true:

$j.ajax({
            crossdomain: true,
            url: 'xml/vehicles.xml',
            dataType: "jsonp",      
            success: function( vehicleXML ) {
                supertree.parseVehicles($j(vehicleXML).find("vehicles"), null);
                supertree.vehiclesLoaded = true;
                if(supertree.scenesLoaded) supertree.ready();
            }
        }); 

但它不起作用。关于如何做到这一点的任何想法?最好不用代理?

【问题讨论】:

  • 由于您在文件系统中工作,因此有一个全新的限制和跨浏览器差异列表。例如,除非您使用正确的标志运行 chrome,否则 Chrome 将不允许您对文件系统执行任何 XMLHTTP 请求。其他浏览器可能会毫无问题地允许该请求。更改为 JSONP 而不是 XML 将是最跨浏览器的处理方式。

标签: javascript jquery xml ajax cross-domain


【解决方案1】:

Same origin policy 阻止您访问数据。您请求数据的服务器需要启用CORS,或者您需要在您的服务器上使用代理从其他服务器获取数据。

其他选项是将 XML 数据更改为 JSONP 格式。这不像告诉 jQuery 发出 JSONP 请求那么容易。数据格式完全不同,服务器必须返回该格式,JavaScript 对此无能为力。

【讨论】:

    猜你喜欢
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    相关资源
    最近更新 更多