我试图从应用程序向Tomcat服务器发送一个Ajax请求,但我得到了这个错误(我的web应用程序运行在Chrome上):
对preflight请求的响应未通过访问控制检查:请求的资源上没有“access-control-allow-origin”标头。因此不允许访问源“null”。响应的HTTP状态代码为403。
我试过使用
'Access-Control-Allow-Origin' : 'http://localhost:8080/app',
但没有奏效。
我的Ajax代码:
var arr = [1];
$.ajax({
url: 'http://localhost:8080/app',
type: 'POST',
contentType:'application/json',
headers: {
'Access-Control-Allow-Origin' : 'http://localhost:8080',
},
data: JSON.stringify(arr[0]),
success: function(data){
//On ajax success do this
alert(data);
}
});
基本上,要进行跨域AJAX请求,被请求的服务器应该允许资源的跨源共享(CORS)。您可以从以下网址了解更多信息:http://www.html5rocks.com/en/tutorials/cors/
在您的场景中,您正在设置客户端中的头,实际上需要将其设置到http://localhost:8080/app服务器端代码中。
如果您使用的是PHP Apache服务器,则需要在.htaccess
文件中添加以下内容:
Header set Access-Control-Allow-Origin "*"