我正在尝试从我的应用程序向Tomcat服务器发送Ajax请求,但是我收到此错误(我的Web应用程序在Chrome上运行):
对预检请求的响应未通过访问控制检查:请求的资源上不存在"Access-Control-Allow-Origin"标头.因此不允许原点'null'访问.响应具有HTTP状态代码403.
我试过用
'Access-Control-Allow-Origin' : 'http://localhost:8080/app',
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我的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);
}
});
Run Code Online (Sandbox Code Playgroud)
小智 33
基本上,要生成跨域AJAX请求,请求的服务器应该允许跨源共享资源(CORS).您可以从这里阅读更多相关信息:http: //www.html5rocks.com/en/tutorials/cors/
在您的方案中,您在客户端中设置标头,实际上需要将其设置为http:// localhost:8080/app服务器端代码.
如果您使用的是PHP Apache服务器,那么您需要在.htaccess
文件中添加以下内容:
Header set Access-Control-Allow-Origin "*"
Run Code Online (Sandbox Code Playgroud)
小智 10
在请求REST服务的情况下:
您需要在REST服务的端点上使用Spring注释允许CORS(跨源共享资源):
@CrossOrigin(origins = "http://localhost:8080")
Run Code Online (Sandbox Code Playgroud)
非常好的教程:https://spring.io/guides/gs/rest-service-cors/
归档时间: |
|
查看次数: |
227325 次 |
最近记录: |