CORS不适用于Uber API OAuth端点



我正在尝试对Uber API端点进行客户端JS调用,这些端点需要OAuth Bearer令牌,如/v1/me,但我收到一个错误,即响应中不存在Access-Control-Allow-Origin标头。

我已经成功地获得了一个Bearer令牌(服务器端),用于GET请求中的Authorization标头。

在我的Uber API应用程序设置中,我将Origin URI设置为我的开发服务器(https://localhost:9000)。

以下是我如何调用/v1/me端点:

var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://api.uber.com/v1/me');
xhr.setRequestHeader("Authorization", "Bearer MY_BEARER_TOKEN");
xhr.send();

在Chrome开发者控制台中,我得到以下错误:

No 'Access-Control-Allow-Origin' header is present on the requested resource

为了确保我的Bearer令牌有效,我成功地使用curl:测试了它

curl -H 'Authorization: Bearer MY_BEARER_TOKEN' 'https://api.uber.com/v1/me'

顺便说一下,我能够成功地调用不需要OAuth承载令牌的API端点,如/products/estimates/price,使用授权令牌头,如下所示:

var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://api.uber.com/v1/products');
xhr.setRequestHeader("Authorization", "Token MY_SERVER_TOKEN");
xhr.send();

这让我相信问题不在于Uber API应用程序的配置设置,例如Origin URI不正确。

最后一点需要注意的是,当我获得OAuth令牌时,我正在从位于的开发服务器上运行的Node Express应用程序发出请求https://localhost:8080,这与我运行客户端JS应用程序的位置不同https://localhost:9000.然而,从同一端口发出请求并没有解决问题。

有什么想法吗?谢谢

您是否在应用程序中的任何位置使用iFrame?当我请求将iFrame与通常不允许人们这样做的产品一起使用时,通常会出现这个问题

在与优步技术支持人员发电子邮件后,问题是CORS在他们端没有正确设置。截至昨天,/v1/me端点正在为我工作,对我的应用程序配置没有任何更改。

最新更新