OneDrive REST API - CORS POST request



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

如预期的那样,浏览器发送了第一个带有相关报头的OPTIONS请求:
Access-Control-Request-Headers:authorization, content-type
Access-Control-Request-Method:POST

响应头,然而,不包括授权作为允许的头:

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标头:
XMLHttpRequest cannot load https://apis.live.net/v5.0/me/skydrive. Request header field authorization is not allowed by Access-Control-Allow-Headers.

有什么办法可以绕过这个问题吗?从我的理解,这是一个服务器问题,因为文档明确要求这个头。

您应该仍然能够像"Delete a Folder"示例那样提供access_token作为查询参数(并且不通过Authorization头提供它)。

最新更新