我让Laravel 8运行在家庭网站(Windows 11 OS)上,可以正常地从邮递员调用API,但是当我试图从浏览器调用任何API(使用VUE JS构建)时,我会得到CORS错误。这是我的Http/Middleware/Cors.php
namespace App\Http\Middleware;
use Closure;
class Cors {
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next) {
$response = $next($request);
$response->headers->set('Access-Control-Allow-Origin', '*');
$response->headers->set('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT, DELETE');
$response->headers->set('Access-Control-Allow-Headers', '*');
return $response;
}
}
THis没有修复这个问题,所以我安装了fruitcake/laravel-cors
并修改了app\Http\Kernel.php
protected $middleware = [
\Fruitcake\Cors\HandleCors::class,
\App\Http\Middleware\TrustProxies::class,
\App\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\Cors::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
];
它也不起作用,所以我尝试修改cors配置
'paths' => ['*', 'api/*'],
'allowed_origins' => ['*', 'http://localhost:8081', 'http://192.168.1.27'],
但是仍然不能从浏览器向家庭网站上的Laravel发出API请求。有什么帮助吗?
更新
在控制台里我得到
ccess to XMLHttpRequest at 'https://backend.test:44300/api/passport_auth' from origin 'http://localhost:8081' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
发布于 2022-08-17 13:23:40
尝试将这些行放到启用/etc/nginx/site的/domain.tld配置文件中。有关更多细节,请查看此处:https://github.com/laravel/homestead/issues/1368#issuecomment-609668101
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Credentials' 'true' always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always;
add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Requested-With' always;
https://stackoverflow.com/questions/73388792
复制相似问题