优步API是否适用于本地环境?在我的https:// localhost上获取Access-Control-Allow-Origin问题

时间:2016-07-19 20:43:09

标签: uber-api

我目前正在测试Uber API,但我还没有得到任何结果,因为我的webapp正在获得一个" Access-Control-Allow-Origin"问题:

XMLHttpRequest无法加载https://api.uber.com/v1/estimates/price。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' https://localhost'因此不允许访问。响应的HTTP状态代码为422。

我已经设置了原始URI: https://localhost

但Access-Control-Allow-Origin错误仍然存​​在。 我将尝试在优步方面重新创建应用程序,但它有点奇怪,它没有像预期的那样工作。

3 个答案:

答案 0 :(得分:1)

您需要在开发人员信息中心的“授权”标签中将http://localhost:{PORT NUMBER}设置为允许的原始URI。您希望将该URI更新为最终在生产中使用的那个。

请参阅CORS的文档:https://developer.uber.com/docs/rides/api-reference

答案 1 :(得分:0)

感谢您的msg 7imon7ays,它也没有端口。

事实证明我搞砸了LatLng对象。我弄明白的方式是: 自" https://api.uber.com/v1/estimates/price"是一个GET我在浏览器上测试了这个网址:

" https://api.uber.com/v1/estimates/price?start_latitude=37.625732&start_longitude=-122.377807&end_latitude=37.785114&end_longitude=-122.406677&server_token=xxxxxxx"

(用您的server_token替换xxxxxx)...

它工作了!,我能够按预期看到输出,所以深入挖掘,我向我的uberParams添加了一个console.log(uberParams)< - 并且结果是所有这些都是关键是未定义:

这就是我使用的:(错误的)

var uberParams = {
            start_latitude : origin.latitude,
            start_longitude : origin.longitude,
            end_latitude: destination.latitude,
            end_longitude: destination.longitude,
            server_token:"xxxxxxx"
        }

原点和目的地都是google.maps.LatLng对象。 所以,对于API,我错误地发送了这个:

        {
            start_latitude : undefined,
            start_longitude : undefined,
            end_latitude: undefined,
            end_longitude: undefined,
            server_token:"xxxxxxx"
        }

UBER Api正在返回这个错误: - >访问控制允许来源

这引起了混乱,因为只要我将params更改为此,origin_uri就不是问题所在:

var uberParams = {
            start_latitude : origin.lat(),
            start_longitude : origin.lng(),
            end_latitude: destination.lat(),
            end_longitude: destination.lng(),
            server_token:"xxxxxxx"
        }

一切都按预期工作。 我的优步朋友的注意事项:"优秀的API,糟糕的错误处理和描述......"

答案 2 :(得分:0)

在您的信息中心上,例如,如果您的重定向网址为http://localhost:8888/book/user/return

然后您的原始网址应该http://localhost:8888最后没有斜线。