再次让CORS头痛……对飞行前请求的响应未通过访问控制检查:它没有HTTP正常状态

问题描述 投票:1回答:1

我曾遇到过类似的问题,但没有一个解决我的问题。我正在Web服务器上运行javascript应用程序,该应用程序应访问另一个子域中的URL。浏览器是Chrome浏览器,并且CORS始终在那儿,无法正确执行我的Ajax请求。

我正在从fiorisandbox.example.com网站发送POST请求,以从citrixtest.example.com获取数据。当我使用Citrix特定标头时,我希望有一个预检请求。由于404未找到错误,此预检请求永远不会成功。控制台中的详细信息显示了CORS问题:

XHRInterceptor-dbg.js:63 Access to XMLHttpRequest at https://citrixtest.example.com/Citrix/UATWeb/Home/Configuration from origin https://fiorisandbox.example.com has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.

请求的详细信息是:

Request URL: https://citrixtest.example.com/Citrix/UATWeb/Home/Configuration
Request Method: OPTIONS
Status Code: 404 Not Found
Remote Address: XX.XX.XX.XX:443
Referrer Policy: no-referrer-when-downgrade
Access-Control-Allow-Headers: *
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Origin: *
Provisional headers are shown
Access-Control-Request-Headers: x-citrix-isusinghttps
Access-Control-Request-Method: POST
Origin: https://fiorisandbox.example.com
Referer: https://fiorisandbox.example.com/sap/bc/ui5_ui5/sap/zopencitrix/index.html?sap-client=100&sap-ui-language=EN&sap-ui-xx-devmode=true
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36

我们在citrixtest服务器中具有IIS 8.5,因此我已经从web.config构建了CORS所需的所有customHeader:

<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="POST, GET, OPTIONS, PUT" />
<add name="Access-Control-Allow-Headers" value="*" />

但是据我所知,OPTIONS动词没有重现预期的200 OK代码。

关于在IIS中需要从OPTIONS动词返回状态代码的任何想法?

经过很多测试:

  • 删除/更改处理程序映射'OPTIONSVerbHandler'] >>
  • 添加了用于匿名访问OPTIONS的授权规则

我曾遇到过类似的问题,但没有一个解决我的问题。我正在Web服务器上运行javascript应用程序,该应用程序应访问另一个子域中的URL。浏览器是Chrome浏览器,并且CORS总是存在的...

ajax post iis options
1个回答
0
投票

该URL的GET返回200吗?

© www.soinside.com 2019 - 2024. All rights reserved.