Laravel跨域资源共享(CORS)'Access-Control-Allow-Origin'和'Access-Control-Allow-Headers'

3

我是Laravel的新手。

我尝试了https://github.com/barryvdh/laravel-cors

当我添加以下内容时:

header('Access-Control-Allow-Origin: *');

在我的public/index.php文件中,响应中没有添加Content-Type。当我添加以下代码时:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: Origin, Content-Type');

它没有添加Access-Control-Allow-Origin。

我对在互联网上找到的各种解决方案感到非常困惑。 我应该如何处理这个问题?

1个回答

13

您可以创建一个新的中间件并将头信息添加到响应中:

运行php artisan make:middleware ModifyHeadersMiddleware

打开文件ModifyHeadersMiddleware并修改handle()方法:

public function handle( $request, Closure $next )
{
    $response = $next( $request );
    $response->header( 'Access-Control-Allow-Origin', '*' );
    $response->header( 'Access-Control-Allow-Headers', 'Origin, Content-Type' );

    return $response;
}

打开 app/Http/Kernel.php 文件,在 protected $middleware 数组中添加 ModifyHeadersMiddleware 类。


它显示“预检请求的响应状态码无效,为500”。 - Aarohi Kulkarni
我的代码有一个错误,你可以复制handle方法并再试一次吗? - thefallen
不行。现在它说“请求的资源上不存在'Access-Control-Allow-Origin'头。” - Aarohi Kulkarni
更新了我的 PHP 从 5.6 到 7 后,它就可以工作了。谢谢 :) - Aarohi Kulkarni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接