javascript - OneDrive REST API - CORS POST 请求

标签 javascript cors onedrive

我正在尝试按照官方文档 ( http://msdn.microsoft.com/en-us/library/dn659743.aspx#create_a_folder ) 使用 OneDrive REST API 创建文件夹。 我已将其实现为 JavaScript 中的 AJAX 请求,这会在浏览器中产生 CORS 请求。

正如预期的那样,浏览器发送第一个带有相关 header 的 OPTIONS 请求:

Access-Control-Request-Headers:authorization, content-type
Access-Control-Request-Method:POST

但是,响应 header 不包含授权 header 作为允许的 header :

Access-Control-Allow-Headers:Content-Type
Access-Control-Allow-Methods:GET, POST, DELETE, PUT, HEAD, MOVE, COPY
Access-Control-Allow-Origin:*
Access-Control-Max-Age:2592000

因此,浏览器(本例中为 Chromium 34)会在控制台中记录错误,并且不会提交 POST 请求,因为不允许添加 Authorization header :

XMLHttpRequest cannot load https://apis.live.net/v5.0/me/skydrive. Request header field authorization is not allowed by Access-Control-Allow-Headers.

有什么办法可以解决这个问题吗?据我了解,这是一个服务器问题,因为文档明确要求提供此 header 。

最佳答案

您应该仍然能够提供 access_token 作为查询参数,如“删除文件夹”示例(并且不要通过授权 header 提供)。

关于javascript - OneDrive REST API - CORS POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24783675/

相关文章:

javascript - 如何在静态 Github 页面上发出 WolframAlpha 请求?

svn - 是否可以将 Skydrive 与 SVN 一起使用?

javascript - 哪个(如果有)Javascript 存储 API(Google Drive、Dropbox、OneDrive)提供自动同步?

azure - 使用 Azure 管理个人 OneDrive 帐户

javascript - 主干 : how to pass data to a render view

javascript - Cytoscape 事件 cxtap 被多次调用

javascript - sweetAlert 未显示

javascript - 使div在一定时间后出现的代码

非默认端口上的反向代理背后的 Spring Boot Cors

javascript - 如何正确地将消息发布到启用了沙箱属性的 iframe 中