我已经搜索了很多关于AJAX调用CORS的解决方案,但我仍然无法从其他服务器获取XML数据。
这是控制台注释:
XMLHttpRequest无法加载url.xml。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许来源“http://localhost”访问
我按照以下说明操作:http://www.html5rocks.com/en/tutorials/cors/部分:来自jQuery的CORS,这是我尝试的代码:
$.ajax({
type:'GET',
url:'http://www.someurl.xml',
contentType:'text/plain',
xhrFields:{
withCredentials: false
},
headers: {
'Access-Control-Allow-Origin':'http://localhost:8080',
'Access-Control-Allow-Method':'GET',
'Access-Control-Allow-Headers':'Content-Type,x-requested-with,Authorization,Access-Control-Allow-Origin'
},
success: function(data){
var test = data;
}
});
我知道这个问题已被多次询问,但没有答案有助于解决我的问题。
在localhost中进行测试我正在使用IIS 8.5
答案 0 :(得分:2)
headers
代码中的$.ajax
部分会将请求添加到服务器,但是来自上需要存在CORS标头>服务器。
使用IIS,您可以在<system.webServer>
的{{1}}部分添加几行代码。添加此项将使您开始使用GET请求:
web.config
有关详情,请参阅此帖子:http://encosia.com/using-cors-to-access-asp-net-services-across-domains/
答案 1 :(得分:1)
您正在拨打的服务器必须发送发送,您无法向他们提供请求本身。
在跨域发出请求时,您的浏览器会在实际请求数据之前执行预检请求以获取相关的CORS标头(我相信这会使用OPTION方法)。
如果来自预检的CORS标头包含当前来源或与之匹配的通配符,则浏览器将继续使用实际请求并获取一些数据。