【问题标题】:Angular/Laravel CORS issue : The Same Origin Policy disallows reading the remote resourceAngular/Laravel CORS 问题:同源策略不允许读取远程资源
【发布时间】:2016-01-10 08:14:01
【问题描述】:

我在这个问题上苦苦挣扎了 5 个多小时。所以请帮忙:)

我的前端堆栈是 Angularjs 而我的后端堆栈是 LAMPLaravel 框架。

我遇到的问题是,当我想在 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


【解决方案1】:

您必须检查您的服务器是否发送该标头: 访问控制允许来源“*”

如果您的服务器不发送它,您的浏览器将在打开与另一个域的连接时失败。

如果您正在使用 grunt,您还有一个选择是使用 grunt-connect-proxy 插件。

检查此链接。 http://www.hierax.org/2014/01/grunt-proxy-setup-for-yeoman.html

【讨论】:

  • 嗯...一样!您的服务器不发送 Access-Control-Allow-Origin。该选项是在服务器上配置的,您可以使用 php 发送该标头,但是...似乎不起作用。配置您的服务器以发送该标头,或使用代理来解决它。
猜你喜欢
  • 2020-12-25
  • 2014-12-26
  • 2020-04-06
  • 1970-01-01
  • 2021-04-04
  • 2014-10-17
  • 2015-07-22
相关资源
最近更新 更多