源自 'http://localhost:8000' 的 Laravel 8 已被 CORS 策略阻止

问题描述 投票:0回答:3

我在 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,
    ];
laravel
3个回答
2
投票

请执行以下操作来解决问题。

php artisan 配置:缓存


1
投票

您可以添加到 TrustHosts.php 中间件中,而无需执行任何额外操作。在这里阅读完整的解决方案:https://stackoverflow.com/a/70361284/2612926


0
投票

php artisan 配置:缓存对我有用

© www.soinside.com 2019 - 2024. All rights reserved.