Reactjs Laravel-React已被CORS政策阻止
我用Laravel构建了一个API,并将其上传到Linux共享主机,当我想在我的React SPA中使用API时。它工作得很好,但这一次我将API Laravel源代码上传到我域文件夹中的Centos服务器上,当我想用React SPA连接API时,Chrome说:Reactjs Laravel-React已被CORS政策阻止,reactjs,laravel,apache,progressive-web-apps,Reactjs,Laravel,Apache,Progressive Web Apps,我用Laravel构建了一个API,并将其上传到Linux共享主机,当我想在我的React SPA中使用API时。它工作得很好,但这一次我将API Laravel源代码上传到我域文件夹中的Centos服务器上,当我想用React SPA连接API时,Chrome说: 已被CORS策略阻止:对飞行前请求的响应未通过>访问控制检查:>请求的资源上不存在“访问控制允许来源”标题 当我将这些代码添加到htaccess时: Header always add Access-Control-Allow-Or
已被CORS策略阻止:对飞行前请求的响应未通过>访问控制检查:>请求的资源上不存在“访问控制允许来源”标题 当我将这些代码添加到htaccess时:
Header always add Access-Control-Allow-Origin "*"
Header always add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header always add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
错误更改为:
对飞行前请求的响应未通过访问控制检查:未通过 具有HTTP ok状态 我已经安装了 在拉雷维尔
SPA域:
web.example.com
API域:example.com/test
我通过将API域更改为主域来测试它
我在Centos中激活了mod_标题
我在我的一个项目中进行了以下工作: 在app/Http/Kernel.php中:
'cors'=>\Barryvdh\cors\HandleCors::class,
在路线上:
// Auth Endpoints
Route::group([
'middleware' => 'cors',
'prefix' => 'api'
], function ($router) {
Route::post('example', 'Auth\ExampleController');
});
在cors/config.php中:
<?php
return [
/*
|--------------------------------------------------------------------------
| Laravel CORS
|--------------------------------------------------------------------------
|
| allowedOrigins, allowedHeaders and allowedMethods can be set to array('*')
| to accept any value.
|
*/
'supportsCredentials' => false,
'allowedOrigins' => ['*'],
'allowedOriginsPatterns' => [],
'allowedHeaders' => ['Content-Type', 'X-Requested-With'],
'allowedMethods' => ['*'],
'exposedHeaders' => [],
'maxAge' => 0,
];
你在app/Http/Kernel.phpyes中添加了中间件吗?我将其添加到中间件内核的api部分,实际上它在我的共享主机上工作。你可以添加一个示例api调用URL吗?example.com/laravelapi/loign example.com/laravelapi是api调用的主域“对飞行前请求的响应未通过访问控制检查:它没有HTTP ok状态。”-那么它有什么状态?调查它为什么有这种状态。然后你就会知道需要修复什么
<?php
return [
/*
|--------------------------------------------------------------------------
| Laravel CORS
|--------------------------------------------------------------------------
|
| allowedOrigins, allowedHeaders and allowedMethods can be set to array('*')
| to accept any value.
|
*/
'supportsCredentials' => false,
'allowedOrigins' => ['*'],
'allowedOriginsPatterns' => [],
'allowedHeaders' => ['Content-Type', 'X-Requested-With'],
'allowedMethods' => ['*'],
'exposedHeaders' => [],
'maxAge' => 0,
];