这是我尝试的
中间件
return $next($request)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Credentials', 'true')
->header('Access-Control-Allow-Headers', 'Origin, Content-Type, Authorization, X-Requested-With, Accept, X-Token-Auth, Application')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
字符串
API路由
Route::group(['middleware' => ['cors', 'auth:api']], function() {
Route::options('{any}');
Route::post('user/profile','UserController@profile');
型
Kernel.php
protected $routeMiddleware = [
'cors' => \App\Http\Middleware\Cors::class,
型
但是,我仍然从另一个来源在API调用中得到这个错误。
对预检请求的响应未通过访问控制检查:请求的资源上不存在“Check-Control-Allow-Origin”标头。
有什么原因吗?
3条答案
按热度按时间tzcvj98z1#
最简单的解决方案转到引导文件夹并打开app.php文件。然后只需在文件的顶部添加这些行。app.php
字符串
另一个解决方案:
型
现在从App\Http\Middleware文件夹打开Cors.php,并将handle()函数替换为以下代码:
Cors.php
型
最后,从App\Http文件夹打开Kernel.php,将下面一行添加到$middleware数组中:
型
现在运行应用程序并从任何位置调用API。
教程结束了。谢谢。🙂
回复MyNotePaper
drkbr07n2#
在composer.json中需要fruitcake/laravel-cors包并更新依赖项:
字符串
全球使用
要允许所有路由使用CORS,请在app/Http/Kernel.phpclass的$middleware属性中添加HandleCors中间件:
型
配置
型
现在更新配置以定义您想要运行CORS服务的路径,(请参阅下面的配置):
config/cors.php
型
更多详情https://github.com/fruitcake/laravel-cors
ccrfmcuu3#
你好,如果你使用的是laravel 6,可能上面所有的解析都不起作用。
所以你应该把下面的代码放在文件RouteServiceProvider.php中:
字符串