我有一个混合的情况:
关于页面的混合情况: - php 页面 - ASMX .NET Web 服务
最后,CDN 上的 WebGL 应用程序。
因此,用户在 cdn.mywebsite.com 上获取我的 WebGL 应用程序。WebGL 应用程序必须与我的 asmx .net 网络服务通信。
但我收到了经典错误:
..已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态。
我添加了: - 在 .htacces 文件中
<IfModule mod_headers.c>
Header add Access-Control-Allow-Origin "*"
</IfModule>
但也在 web.config 文件中(因为我的 web 服务也在运行):
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS"/>
<add name="Access-Control-Allow-Headers" value="Content-Type"/>
</customHeaders>
</httpProtocol>
</system.webServer>
我还启用了 headers apache mod。
CORS 不起作用的原因是什么?
我使用另一个 SO 解决方案解决了:
通过环顾四周,我发现您可以使用重写来做到这一点,例如:
RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS RewriteRule ^(.*)$ $1 [R=200,L]
(确保启用重写模块)
然后你应该使用“始终设置”来设置标题,例如:
标头始终设置 Access-Control-Allow-Origin "*"
标头始终设置 Access-Control-Allow-Methods "POST, GET, OPTIONS"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句