OneDrive oAuth token 请求收到 CORS 错误

标签 onedrive

我正在开发一个单页应用程序,该应用程序也需要离线访问 Microsoft OneDrive。因此,我指导用户使用代码流方法通过 OneDrive 进行身份验证。

应用程序已成功检索代码,但是当调用 https://login.live.com/oauth20_token.srf 时请求因 CORS 错误而失败。

请参阅我在 Chrome 上的 javascript 控制台中获取 HTTP header 的附图。服务器的响应缺少 header

Access-Control-Allow-Origin: 导致 CORS 错误

如何为我的应用启用 CORS 访问?我在开发者控制台中没有看到任何选项?

谢谢! enter image description here

最佳答案

收到 access_token 后,您应该能够使用 CORS 向 OneDrive API 发出经过身份验证的请求。从提供的 HTTP header 来看,您似乎需要再执行一次调用来兑换访问 token 的代码。您可能想查看http://onedrive.github.io/auth/msa_oauth.htm (第2步)。收到访问 token 后,您需要将访问 token 添加到请求的“授权” header 中。下面是使用 CORS 和响应 header 的 HTTP 请求示例。我希望这会有所帮助。

var xhr = new XMLHttpRequest();
var oauthAccessToken = accessTokenStoredHere();
xhr.open('GET',
  'https://api.onedrive.com/v1.0/drive/');
xhr.setRequestHeader('Authorization',
  'Bearer ' + oauthAccessToken);
xhr.send();

GET /v1.0/drive/ 
HTTP/1.1
Authorization:Bearer YOUR_ACCESS_TOKEN
Host:api.onedrive.com
X-Target-URI:https://api.onedrive.com
Connection:Keep-Alive

关于OneDrive oAuth token 请求收到 CORS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29425390/

相关文章:

swift - 将大文件上传到 oneDrive iOS SDK 的一个驱动器?

javascript - 使用 Ajax 调用上传大文件

azure - 如何以编程方式将文件上传到我的 Skydrive 帐户并获取其可共享链接?

c# - 如何简单的访问网盘,读写文件?

javascript - 是否可以在没有服务器的情况下对 Microsoft Graph 进行身份验证?

c# - H结果 : 0xC00CE556 - Loading string to XML

php - 转换为 PHP REST CURL POST

c# - 使用 OneDrive API 的 Azure 函数返回编译错误

c# - 使用 .NET SDK 按路径获取 Microsoft Graph Drive 项目

amazon-s3 - 如何在我的 Web 应用程序中使用 Office365 打开文档?