首页 > 解决方案 > Laravel 访问 XMLHttpRequest 错误如何解决

问题描述

我有一个 Laravel 7 应用程序,我正在尝试在 Bootstrap 模型窗口中访问外部 URL。当我使用下面的 jQuery 函数时,单击按钮时,我想加载模型并显示外部网站。

$('#myModal').on('show.bs.modal', function (e) {
    $(this).find('.modal-body').load('http://***.com');
});

我收到以下错误。

Access to XMLHttpRequest at 'http://****' from origin 'http://****' 
has been blocked by CORS policy: Response to 
preflight request doesn't pass access control check: Redirect is 
not allowed for a preflight request.

我已经搜索并找到了一种使用中间件的解决方案。我在app\http\Middleware\Cors.php.

public function handle($request, Closure $next)
{
    return $next($request)
        ->header('Access-Control-Allow-Origin', '*')
        ->header('Access-Control-Allow-Methods', 
            'GET, POST, PUT, DELETE, OPTIONS')
        ->header('Access-Control-Allow-Headers', 
            'Accept,Authorization,Content-Type');
}

之后,我在app\http\Kernel.php.

protected $middleware = [
....
...
\App\Http\Middleware\Cors::class, 
    ];

但我仍然得到同样的错误。我该如何解决这个错误?

标签: xmlhttprequestlaravel-7

解决方案


Laravel 7 已于 3 月发布,并提供了对 CORS 的内置支持,因此开发人员无需使用第三方包即可在其 Laravel 应用程序中启用 CORS。

您可以使用 config/cors.php 文件进行 cors 设置。

有关更多详细信息,请点击链接 - https://www.techiediaries.com/laravel/laravel-7-6-cors-example-and-tutorial/


推荐阅读