首页 文章

Laravel Angular CORS问题

提问于
浏览
0

我搜索了高低,并尝试了几种解决方案但我无法弄清楚这一点 . 我在当地工作(MAMP) .

我有两个本地服务器,一个Angular前端服务器和一个Laravel服务器来处理请求并将数据CRUD回到Angular .

从Laravel服务器获取数据没有问题,当我尝试创建,更新或删除操作来更新服务器时,我不断收到CORS错误(原因:缺少CORS Headers 'Access-Control-Allow-Origin') . 我在.htaccess文件中设置了以下指令:

Header add Access-Control-Allow-Origin: *

Header add Access-Control-Allow-Methods: GET,POST,OPTIONS,DELETE,PUT

Header add Access-Control-Allow-Headers: Content-Type

我试图实现这些解决方案,将Laravel的CORS头响应添加到我的项目中,但我仍然没有取得任何成功:

https://github.com/barryvdh/laravel-cors

https://github.com/spatie/laravel-cors

我希望有人遇到过类似的问题,可以提供帮助 .

3 回答

  • 0

    这个barryvdh cors配置应该允许你允许一切

    'supportsCredentials' => true,
    'allowedOrigins' => ['*'],
    'allowedHeaders' => ['*'],
    'allowedMethods' => ['*'], // ex: ['GET', 'POST', 'PUT',  'DELETE']
    'exposedHeaders' => ['*'],
    'maxAge' => 0,
    

    还要检查chrome dev工具网络部分中的服务器响应 . 确保已设置标头 .

  • -2

    这是在客户端发生的错误,因为服务器没有使用正确的CORS值进行响应 . .htaccess文件看起来没问题,但是在Laravel后端尝试使用PHP添加标头 . 查看更多here .

    return response(...)
      ->header('Access-Control-Allow-Origin', '*')
      ->header('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE');
    

    如果您需要为所有 endpoints 使用此功能,请考虑使用中间件 .

    Edit: 我认为问题也可能出在你的允许 Headers 中 . 尝试将原点添加到允许的 Headers 中

    ->header('Access-Control-Allow-Headers', 'origin, x-requested-with')
    
  • 0

    我一定搞砸了BarryVDH CORS软件包的实现,因为在摆弄它之后它就解决了这个问题 .

相关问题