【发布时间】:2018-05-18 08:00:53
【问题描述】:
我有 2 个网站在我的服务器端与 REST API 进行通信。 主网站有主域,第二个网站有子域。 例如 www.example.com 和 www.admin.example.com
我在 www.example.com 根目录上有一个 REST API,当 API 的 www.example.com 地址一切正常,但当 www.example.com strong>www.admin.example.com 正在尝试访问 API,我收到一个错误:
对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。 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 问题,甚至是客户端问题?
谢谢
【问题讨论】:
-
blogs.iis.net/iisteam/introducing-iis-cors-1-0Microsoft 引入了一个新的 OOB 模块供您配置 CORS 响应。
-
谢谢!!!解决了它