我一直试图理解这一段时间,但却无法得到它!
我遵循了教程(https://scotch.io/tutorials/token-based-authentication-for-angularjs-and-laravel-apps),但我没有将Angular放在/ public文件夹中,而是创建了一个外部客户端。
使用MAMP PRO,我把API放在http://www.jotbot.local,客户端在http://www.jotclient.local。当我尝试登录时,会收到此错误:
XMLHttpRequest cannot load http://www.jotbot.local/api/authenticate. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://www.jotclient.local' is therefore not allowed access.
在Laravel的CORS配置中,我有:
return [
'supportsCredentials' => false,
'allowedOrigins' => ['*'],
'allowedHeaders' => ['*'],
'allowedMethods' => ['GET', 'POST', 'PUT', 'DELETE'],
'exposedHeaders' => ['*'],
'maxAge' => 0,
'hosts' => [],
];
我不确定要改变什么。是'allowedOrigins'=> ['*']行或'hosts'=> []行需要改变什么?
此外,客户端(在我的真实应用程序中)将被公开访问,并且每当他被处理时将被提供给客户端意味着我不知道我需要允许的域名因此我需要一些通配符,所以我我真的很困惑,很难找到关于CORS包的文档(或者我不知道我在找什么......大声笑)
感谢您提供的任何帮助。
答案 0 :(得分:2)
我遵循相同的教程并面临同样的问题。
您必须为Laravel 5.1添加CORS。
按照安装上的步骤操作,它将正常工作。
https://github.com/barryvdh/laravel-cors
在composer.json中需要 barryvdh / laravel-cors 包并更新您的依赖项。
$ composer require barryvdh/laravel-cors 0.7.x
将 Cors \ ServiceProvider 添加到config / app.php提供程序数组中:
Barryvdh\Cors\ServiceProvider::class,
在 routes.php 文件中添加中间件
Route::group(['prefix' => 'api','middleware' => 'cors'], function()
或
Route::group(['middleware' => 'cors'], function()