405在本地主机上发出API请求时出现错误和CORS

时间:2019-04-26 21:04:03

标签: laravel vue.js vuejs2 axios

我正在尝试从本地主机环境中的天气API中提取数据,并且出现405错误(不允许使用方法),以及“已被CORS策略阻止:对预检请求的响应未通过访问控制检查:它没有HTTP正常状态。”我已经配置了标头,无法弄清楚我在做什么错。它可以在现场正常运行,但显然这不是一种方便的方法。

我尝试使用axios.get和axios.post。

var config = {
    headers: {'Access-Control-Allow-Origin': '*'}
};
getWeather: function (){
    axios.get('http://api.openweathermap.org/data/2.5/forecast?id='+ city + '&appid='+ apiKey, config).then((res) => {this.weather = res.data});
}

1 个答案:

答案 0 :(得分:0)

希望在下面的软件包中添加内容会有所帮助

use this https://github.com/barryvdh/laravel-cors

安装:

composer require barryvdh/laravel-cors

服务提供商:

将此Barryvdh\Cors\ServiceProvider::class,添加到config/app.php

要允许CORS 用于所有路由,请在HandleCors类的$middleware属性中添加app/Http/Kernel.php中间件:

protected $middleware = [
 \Barryvdh\Cors\HandleCors::class,
 // ...
];

注意:请确保将其放置在所有中间件之前

如果是针对特定的中间件,则在本例中为api

protected $middlewareGroups = [
'web' => [
   // ...
],

'api' => [
    \Barryvdh\Cors\HandleCors::class, 
    'throttle:60,1',
    'bindings',
],

];

注意:请确保将其放置在所有中间件之前

发布配置:

php artisan vendor:publish --provider="Barryvdh\Cors\ServiceProvider"
相关问题