在laravel 5.3中设置cors

5 浏览
0 Comments

在laravel 5.3中设置cors

所以我有以下中间件:

header('Access-Control-Allow-Origin', '*')
            ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
    }
}

看起来很简单,它已经注册了:

 \App\Http\Middleware\Cors::class,
        // ...
    ];
}

路由使用它:

Route::group([
    'prefix'     => 'api/v1/',
    'middleware' => 'cors'
], function() {
    // ...
});

然而控制台显示:

Fetch API无法加载

http://examplesite.local/api/v1/blogs?_sort=id&_order=DESC&_start=0&_end=10

请求标头字段内容类型不被

预检响应的Access-Control-Allow-Headers允许。

上次我检查,这是在Laravel 5.3中设置cors的正确方式,所以除非我完全错误...

我可以在Chrome的网络选项卡中点击api请求的链接,它会打开一个新的选项卡显示api的结果,这是一个json响应。

但是javascript认为cors未启用?

0
0 Comments

问题出现的原因是服务器端缺少content-type头。解决方法是在header中添加Access-Control-Allow-Headers头,并包括Content-Type, X-Auth-Token, Origin参数。具体代码如下:

->header('Access-Control-Allow-Headers', 'Content-Type, X-Auth-Token, Origin');

你也可以参考这个答案:https://stackoverflow.com/a/28677236/2568469

0