获取请求不通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头

我试图从我的应用程序发送一个Ajax请求到Tomcat服务器,但我得到这个错误(我的Web应用程序在Chrome上运行):

对预检请求的响应不会通过访问控制检查:请求的资源上不存在“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 "*" 

在请求REST服务的情况下:

您需要使用Spring批注在REST服务的端点上允许CORS(跨源共享资源):

 @CrossOrigin(origins = "http://localhost:8080") 

非常好的教程: https : //spring.io/guides/gs/rest-service-cors/