我的情况很复杂:
关于页面的情况混合: -php页面 -ASMX .NET Web服务
最后,CDN上的WebGL应用程序。
因此,用户可以在cdn.mywebsite.com上获取我的WebGL应用程序。 WebGL应用程序必须与我的asmx .net网络服务通信。
但是我遇到了经典错误:
..已被CORS政策阻止:对预检请求的响应 没有通过访问控制检查:它没有HTTP正常状态。
我添加了: -在.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>
我还启用了标头apache mod。
CORS无法正常工作是什么原因?
答案 0 :(得分:0)
我使用了另一种SO解决方案:
handling CORS preflight request in Apache
通过环顾四周,我发现您可以使用重写来完成此操作,例如:
RewriteEngine开启
RewriteCond%{REQUEST_METHOD}选项
RewriteRule ^(。*)$ $ 1 [R = 200,L]
(确保您启用了重写mod)
然后您应该使用“始终设置”来设置标题,例如:
标题始终设置为Access-Control-Allow-Origin“ *”
标头始终将Access-Control-Allow-Methods设置为“ POST,GET,OPTIONS”