我在 Axios Laravel crossite 中遇到问题,它返回此错误:
从源“http://localhost:8000”访问“http://localhost/moddle/moodle/login/index.php”处的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。
我已经像 laravel-cors 一样关注并在 stackoverflow 上回答,但没有一个起作用。
这是我的 Axios:
let axiosConfig = {
headers: {
"Access-Control-Allow-Origin": "*",
'Content-Type': 'application/json;',
"Content-Type": "application/x-www-form-urlencoded",
}
};
axios.post('http://localhost/moddle/moodle/login/index.php', response.data, {
crossOrigin: null,
}, axiosConfig).then(
response => {
console.log(true);
window.location.href = "http://localhost/moddle/moodle/my/";
}).catch(erorr => {
});
在我的 cors.php 中
'paths' => ['api/*', 'sanctum/csrf-cookie'],
'allowed_methods' => ['*'],
'allowed_origins' => ['*'],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 0,
'supports_credentials' => false,
在我的中间件中
protected $middleware = [
// \App\Http\Middleware\TrustHosts::class,
\Fruitcake\Cors\HandleCors::class,
\App\Http\Middleware\TrustProxies::class,
\App\Http\Middleware\PreventRequestsDuringMaintenance::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
//
// \App\Http\Middleware\Cors::class,
];
请执行以下操作来解决问题。
php artisan 配置:缓存
您可以添加到 TrustHosts.php 中间件中,而无需执行任何额外操作。在这里阅读完整的解决方案:https://stackoverflow.com/a/70361284/2612926
php artisan 配置:缓存对我有用