Lyft-API-从Localhost获取

时间:2019-03-04 13:59:23

标签: vue.js axios lyft-api

我一直在试图弄清楚如何使该Vue项目与Lyft API一起使用。我已经能够从三足程序中成功创建一个Auth Token,但是我无法从https://api.lyft.com/v1/ridetypes获取可用的驱动器类型localhost:8080端点。它确实适用于邮递员

它一直在说明:

  

在以下位置访问XMLHttpRequest   'https://api.lyft.com/v1/ridetypes?lat=37.7752315&lng=-122.418075'   来自来源“ http://localhost:8080”的信息已被CORS政策阻止:   对预检请求的响应未通过访问控制检查:否   请求中存在“ Access-Control-Allow-Origin”标头   资源。

我尝试使用vue.config.js文件做代理:

module.exports = {
    devServer: {
        proxy: {
            '/lyftapi': {
                target: 'https://api.lyft.com/v1',
                ws: true,
                changeOrigin: true
            }
        }
    }
}

我到过Stack Overflow的其他地方,这是最接近我的问题,但没有答案。

CORS error in Lyft API started recently

有什么建议吗?

Axios拨打电话

axios.get('/ridetypes', {
    baseURL: 'https://api.lyft.com/v1',
    headers: {
        'Authorization': this.lyftToken,
    },
    params: {
        lat: lat.toString(),
        lng: long.toString()
    }
})

如果有任何意义,我能够成功进行GET调用以检索Uber产品,但不能认证出Auth Token(除非它来自Postman)。

1 个答案:

答案 0 :(得分:2)

Lyft-API已禁用CORS,这意味着浏览器将阻止对api.lyft.com的调用。

Vue对此无能为力,因为这是浏览器的安全策略。

幸运的是,没有什么可以阻止您从自己的服务器发出此呼叫。

一种解决方案是使用您自己的服务器转发请求和响应。您呼叫服务器,服务器呼叫lyft,等待响应,然后响应您的请求。

这不是唯一的解决方案。