【问题标题】:Lyft-API - GET from LocalhostLyft-API - 从本地主机获取
【发布时间】:2019-07-25 20:35:08
【问题描述】:

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

它一直在说:

访问 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)。

【问题讨论】:

    标签: vue.js axios lyft-api


    【解决方案1】:

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

    Vue 无法对此做任何事情,因为这是浏览器安全策略。

    幸运的是,没有什么可以阻止您从自己的服务器进行此调用。

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

    不仅仅是 vue 解决方案

    【讨论】:

    • 我认为我可以用 Node.js 做到这一点?
    • 是的,你可以用 nodejs 做到这一点
    • 我只是想确认我获得了 REST API 以在 Node.js 上工作。再次感谢。
    • 我很高兴听到这个消息。
    猜你喜欢
    • 2017-02-18
    • 2014-04-02
    • 1970-01-01
    • 1970-01-01
    • 2018-09-06
    • 2019-11-09
    • 1970-01-01
    • 2017-09-15
    • 2020-02-18
    相关资源
    最近更新 更多