无法通过Jquery ajax调用加载本地.xml文件

时间:2014-02-18 08:56:09

标签: jquery ajax

我正在本地计算机上制作示例Web应用程序。我想对我本地计算机上的.xml文件进行ajax调用。

它根本不适用于任何浏览器。 当我尝试在Chrome的“网络”标签中看到时,显示XMLHttpRequest cannot load file:///D:/somefolder/finishers.xml?_=1392713504397.请求的资源上没有“Access-Control-Allow-Origin”标头。因此,不允许原点'null'访问。

可能这可能是重复的问题,但我是Jquery的新手。 以下是我的代码。

$.ajax({
    url: "finishers.xml",
    cache: false,
    dataType: "xml",
    success: function(xml){}    
});

请帮我解决这个问题。 提前谢谢。

3 个答案:

答案 0 :(得分:2)

这是因为您在本地计算机上运行代码(不在Web服务器下运行)。

将您的代码放在Web服务器(如apache)下,然后重试。

答案 1 :(得分:1)

您获得的错误与您创建的JavaScript无关,但与使用该数据的访问权限(也称为Cross-Origin Resource Sharing)无关。由于api(服务器)不了解您的客户端,因此您不能使用该数据。

1)解决方案是使您用于调用(web)api的页面与您的(web)api位于同一个域中。在这种情况下,他们共享相同的域,因此您可以使用相同的数据。

2)您的问题的另一个解决方案(跨域)是让您的服务器知道您的域,并且您的域是使用该数据的有效域。我不知道你使用什么样的语言(web)api,但你必须配置端点它将返回一个标题

"Access-Control-Allow-Origin: 'Your domain of the calling client here'"

如果这确实是您的问题,您也可以尝试将其作为返回标题

"Access-Control-Allow-Origin: *"

注意:请注意,您不会在制作中使用此功能,因为您实际上是说每个人都可以使用此(网络)API。

答案 2 :(得分:0)

此错误是由于客户端代码向不存在的服务器发出请求而导致的。您的第一个选择是将您的网站部署到托管平台。但是,这是生产活动,不需要快速确认您已实现的功能。

一个快速解决方案是通过安装python,导航到终端中项目目录的根目录并运行此命令来在本地计算机上运行网络服务器。

python -m http.server

然后您可以导航到相应的localhost端口并通过index.html文件输入Web应用程序