我目前正在测试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错误仍然存在。 我将尝试在优步方面重新创建应用程序,但它有点奇怪,它没有像预期的那样工作。
答案 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我在浏览器上测试了这个网址:
(用您的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最后没有斜线。