正在获取请求't通过访问控制检查:否'访问控制允许来源'标头存在于请求的资源上

Getting request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource

本文关键字:请求 访问控制 于请求 存在 资源 获取 检查      更新时间:2023-09-26

我正试图从我的应用程序向Tomcat服务器发送Ajax请求,但我收到了这个错误(我的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/

相关文章: