gpt4 book ai didi

ajax - 再次 CORS 头痛...对预检请求的响应未通过访问控制检查 : It does not have HTTP ok status

转载 作者:行者123 更新时间:2023-12-04 21:29:55 26 4
gpt4 key购买 nike

我一直有类似的问题,但没有人解决我的问题。我正在 Web 服务器上运行一个 javascript 应用程序,该应用程序应该访问另一个子域中的 URL。浏览器是 Chrome 并且 CORS 总是在那里阻止我的 Ajax 请求的正确执行。

我正在从 fiorisandbox.example.com 站点发送 POST 请求以从 citrixtest.example.com 获取数据。因为我使用的是 Citrix 特定的 header ,所以我希望有一个预检请求。这个预检请求永远不会成功,因为 404 Not found 错误。控制台中的详细信息显示 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 所需的所有 customHeaders:
<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 的授权规则
  • 最佳答案

    对该 URL 的 GET 是否返回 200?

    除了删除OPTIONSVerbHandler ,您可以尝试添加另一个处理程序来响应 OPTIONS 请求吗?

    <system.webServer>
    <handlers>
    <remove name="OPTIONSVerbHandler"/>
    <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0"/>
    <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0"/>
    <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/>
    </handlers>
    </system.webServer>

    我已经在 SO 的其他地方看到过这个配置,但是我没有方便的 Windows 机器来自己测试它。

    关于ajax - 再次 CORS 头痛...对预检请求的响应未通过访问控制检查 : It does not have HTTP ok status,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56055537/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com