我正在以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
答案 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