我在服务器端有2个与REST API通信的网站。主网站具有主域,第二个网站具有子域。例如www.example.com和www.admin.example.com
我在www.example.com根目录上有一个REST API ,当该API的www.example.com地址一切正常时,但是当www.admin.example.com尝试寻址该API时,我得到了错误:
对预检请求的响应未通过访问控制检查:所请求的资源上不存在“ Access-Control-Allow-Origin”标头。因此,不允许访问源“ http://admin.example.com ”。
我的RestController.php文件中有以下PHP代码行:
header("Access-Control-Allow-Origin: *");
我还尝试将以下代码添加到我的web.config中:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="*" />
<add name="Access-Control-Allow-Methods" value="GET, PUT, POST, DELETE, OPTIONS" />
<add name="Access-Control-Max-Age" value="1000" />
</customHeaders>
</httpProtocol>
</system.webServer>
但仍然出现No'Access-Control-Allow-Origin'标头错误,或错误“'Access-Control-Allow-Origin'标头包含多个值'*,*,但只允许一个。”
我不知道这是否重要,但我们在客户端使用Angular 4。
有谁知道这是什么问题,是IIS问题还是PHP问题,甚至是客户端问题?
谢谢
以前,您必须编写自己的代码或其他黑客方法,但是现在Microsoft提供了一个正式的IIS扩展,称为IIS CORS Module。
您可以在安装后轻松配置CORS响应。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句