在本地服务器中面临 CORS 错误
Posted
技术标签:
【中文标题】在本地服务器中面临 CORS 错误【英文标题】:Facing a CORS ERROR in local server 【发布时间】:2018-05-25 19:38:12 【问题描述】:我正在向我在本地的其他域发送带有 XMLHttpRequest
的发布请求,但我收到以下 CORS 错误:
无法加载http://another.local/:“Access-Control-Allow-Origin”标头包含多个值“*、http://example.local”,但只允许一个。因此,不允许访问 Origin 'http://example.local'。
我在 php 中设置了如下标题:
<?php
header("Access-Control-Allow-Origin: *",false); //header("Access-Control-Allow-Origin: *");
header('Access-Control-Allow-Methods: POST, GET');
header("Access-Control-Allow-Credentials: true");
header('Access-Control-Max-Age: 1000');
header("Content-type:application/json");
readfile('data.json');
尽管设置了标题,但我仍然收到 CORS 错误;我做错了什么,我该如何解决?
【问题讨论】:
sn-p 代码后新的 cors 错误是什么? 试试header('Access-Control-Allow-Origin: *');
您可能会发现使用 fetch
api 更容易 - 它对 CORS developer.mozilla.org/en-US/docs/Web/API/Fetch_API 有适当的支持。如果将 ajax 代码添加到问题中可能会有所帮助
【参考方案1】:
最后,我解决了这个问题。 我使用 Laragon 进行 PHP 开发,但我不知道它的 Laragon 配置或 apache,默认情况下他们在配置文件中设置:
Header always set Access-Control-Allow-Origin "*"
这与我在 PHP 中设置的标头发生冲突。我评论它,可以毫无问题地设置标题。
感谢@Thamaraiselvam 和@rahul-mukherjee 帮助我。
【讨论】:
拯救了我的一天 :) 我将此行添加到我的httpd.conf
(在底部)。但它不起作用。我重新启动了一切。【参考方案2】:
你可以试试设置header('Access-Control-Allow-Origin: *');
还要检查你是否有两次相同的标题
【讨论】:
没有区别。加载“another.local”失败:“Access-Control-Allow-Origin”标头包含多个值“*、*”,但只允许一个。因此不允许访问源“'example.local'”。 检查你是否添加了两次相同的标题header('Access-Control-Allow-Origin)
为什么要允许 每个 来源,而不是只允许他自己的域? O.o
感谢您的帮助,但我的另一个 PHP 脚本仅包含 4 行代码。所以两次场景是不可能的。
@Thamaraiselvam 是的,我编辑问题并过去了我所有的 PHP 代码【参考方案3】:
你可以试试 header('Access-Control-Allow-Origin: http://example.local', false);
如果您还没有设置可以使用的 http 方法:
header("Access-Control-Allow-Credentials: true");
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
header('Access-Control-Max-Age: 1000');
header("Access-Control-Allow-Headers: ACCEPT, CONTENT-TYPE, X-CSRF-TOKEN");
注意:请根据您的要求更改值:
【讨论】:
谢谢你,但有/没有 false 仍然得到同样的错误。 您是使用所有的标题还是只使用访问控制?您能否使用所有所需的标题并查看..谢谢!以上是关于在本地服务器中面临 CORS 错误的主要内容,如果未能解决你的问题,请参考以下文章
服务器中的 C# webapi Cors Option 请求返回错误 404 未找到
向本地nodeJS服务器发出发布请求时出现AngularJS CORS错误
从本地 html 文件到服务器的 JSON 请求引发 CORS 错误:CORS 策略已阻止从源“null”访问 <URL> 处的 XMLHttpRequest
本地 Javascript 测试 Web 服务 - CORS