重定向已被CORS阻止

时间:2018-07-16 09:53:27

标签: java angularjs spring cors

我正在以HttpServletResponse的形式发送从POST API到adfs服务器的重定向,其中包含状态为302的URL,但它给出了以下错误消息

  

XMLHttpRequest无法加载资源A。从资源A重定向到   资源B已被CORS政策阻止:否   请求中存在“ Access-Control-Allow-Origin”标头   资源。因此,不允许原点“ http://localhost:9000”   访问。

其中资源A是在“ http://localhost:9000”上运行的我的api,资源B是adfs服务器。

我也将API中的access-control-allow-origin头设置为'*'。

当我使用AngularJS从我的API重定向到Google时,它会成功重定向。我需要更改Web中的.htaccess文件还是需要更改API?

我已经检查了

How does Access-Control-Allow-Origin header work?

Redirect from A has been blocked by CORS policy. Origin B is therefore not allowed access

Understanding XMLHttpRequest over CORS (responseText)

2 个答案:

答案 0 :(得分:0)

该请求被“ adfs服务器”阻止,因为来源请求未知。您应该识别您的机器,以便“ adfs服务器”代理可以进行呼叫。 (这是为了防止来自未知来源的请求)

答案 1 :(得分:0)

我正在从angular调用一个api,作为响应,API重定向到HTTP状态为302的adfs服务器。这将被CORS阻止。

您可以为adfs服务器创建一个反向代理,其中来自adfs服务器的所有响应都将附加一个access-control-allow-origin头。

我通过将重定向网址作为API的响应而不是HTTP 302重定向发送到angular应用程序来解决此问题,然后使用

  

$ window.location.href = JSON.parse(result.data)//结果.data包含来自api的重定向URL