【问题标题】:Enabling CORS in laravel using barryvdh/laravel-cors package?使用 barryvdh/laravel-cors 包在 laravel 中启用 CORS?
【发布时间】:2015-02-19 02:18:20
【问题描述】:

我正在开发一个简单的 Angular 应用程序,我希望我的后端数据来自我在 Laravel 中创建的 API。 API 发送回数据就好了。但是由于我是单独开发我的 Angular 应用程序,所以当我在 Angular 中使用服务来获取我的资源时出现错误。

错误

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:8001/airports. This can be fixed by moving the resource to the same domain or enabling CORS.

所以现在我在 Laravel 中安装了一个包,它应该可以解决这个问题,但我不知道如何使用它。包的配置文件如下所示:

'defaults' => array(
        'supportsCredentials' => false,
        'allowedOrigins' => array(),
        'allowedHeaders' => array(),
        'allowedMethods' => array(),
        'exposedHeaders' => array(),
        'maxAge' => 0,
        'hosts' => array(),
    ),

    'paths' => array(
        'api/*' => array(
            'allowedOrigins' => array('*'),
            'allowedHeaders' => array('*'),
            'allowedMethods' => array('*'),
            'maxAge' => 3600,
        ),
        '*' => array(
            'allowedOrigins' => array('*'),
            'allowedHeaders' => array('Content-Type'),
            'allowedMethods' => array('POST', 'PUT', 'GET', 'DELETE'),
            'maxAge' => 3600,
            'hosts' => array('api.*'),
        ),
    ),

我仍然遇到同样的错误。现在我必须改变什么才能允许 CORS?

注意:我安装了 WAMP。我正在同一个本地服务器上开发我的 Angular 应用程序和 Laravel API。

【问题讨论】:

  • 您的 API 是否以“api/”为前缀?

标签: angularjs laravel-4 cors


【解决方案1】:

我在使用 EmberJS 而不是 Angular 时遇到了类似的问题。 Laravel 设置看起来正确,但我认为您需要在 Angular 中启用 CORS 支持。

来自 Chrome 开发者教程:

内容安全政策简介

与许多其他 JS MVC 框架不同, Angular v1.1.0+ 无需任何调整即可在严格的 CSP 中工作。它 开箱即用!

但是,如果您使用的是 v1.0.1 之间的旧版本 Angular 和 v1.1.0,你需要告诉 Angular 在“内容安全”中运行 模式”。这是通过在 ngApp 旁边包含 ngCsp 指令来完成的:

<html data-ng-app data-ng-csp>

你可以找到整篇文章here

【讨论】:

    猜你喜欢
    • 2014-06-01
    • 2015-09-30
    • 2014-12-21
    • 2017-04-20
    • 2018-05-07
    • 1970-01-01
    • 2019-08-16
    • 2016-01-09
    相关资源
    最近更新 更多