【发布时间】:2016-01-10 08:14:01
【问题描述】:
我在这个问题上苦苦挣扎了 5 个多小时。所以请帮忙:)
我的前端堆栈是 Angularjs 而我的后端堆栈是 LAMP 和 Laravel 框架。
我遇到的问题是,当我想在 ui-router 解析器中以 $http 服务作为依赖项发送 GET 请求时,firefox 会抛出错误:The Same Origin Policy disallows reading the remote resource
但我已经使用barryvdh/laravel-cors 包配置了我的后端,以便使用它的中间件来设置正确的标头。
Angular 代码 sn-p:
$http.post('http://example.com', data)
.then(function (data, status, headers, config) {
},
function (data, status, headers, config) {
});
Laravel 代码 sn-p :
//controller constructor
public function __construct()
{
//parent::__construct();
$this->middleware('cors');
}
很简单很正常的代码,不知道为什么不行。
这是我的 HTTP 请求/响应日志:
我不知道为什么 CORS 标头不存在,尽管它们存在于服务器日志中。
【问题讨论】:
-
我们需要查看来自服务器的 HTTP 响应以获取更多信息。
-
我会在发出此请求的页面上检查 access-control-allow-origin 标头。我曾经遇到过这个问题,我通过将发出 get 请求的代码移动到服务器来解决它。
-
检查预检 OPTIONS 请求中的标头并确保 OPTIONS 得到尊重
-
@charlietfl 更新问题
-
我不知道 laravel 但没有访问控制标头。纯php解决方案见stackoverflow.com/a/9866124/1175966
标签: javascript php angularjs laravel cors