访问O365 Rest API时阻止跨源请求

时间:2015-02-26 22:06:20

标签: cors office365

我正在尝试在asp.net mvc应用程序中创建部分邮件客户端。我没有使用.net API,因为我需要通过javascript在客户端获取消息。

不幸的是,在尝试通过ajax请求获取消息时出现以下错误。

  

阻止跨源请求:同源策略禁止读取   远程资源在   https://outlook.office365.com/api/v1.0/me/messages。这可以修复   通过将资源移动到同一域或启用CORS。

这是我的ajax请求

    jQuery.ajax({
        url: "https://outlook.office365.com/api/v1.0/me/messages",
        type: "GET",
        headers: { "Authorization": authToken },
        success: function (response) {
            debugger;
            // response
        },
        error: function (request, errorType, error) {
            debugger;
        }
    });

知道我在这里做错了吗?我对CORS了解不多。

3 个答案:

答案 0 :(得分:3)

Office 365 API明确不支持cross-origin resource sharing或CORS。这基本上是当您在网页中的浏览器中执行的脚本(如您的AJAX请求)尝试访问网页域之外的内容时。我们在路线图上有这个支持,但我目前没有具体的时间表分享。

答案 1 :(得分:2)

我创建了一个使用Web API项目代理O365调用的示例解决方案。我认为这是一个可接受的解决方案,直到MS可以更新O365 API以支持CORS。如果有兴趣您可以在此处找到示例https://github.com/nickmkk/O365WebClient

答案 2 :(得分:0)

自2015年8月以来,开发人员现在可以选择使用CORS向Office 365 API发送请求,以便可靠地访问,修改和创建数据。

以下是Microsoft官方文档:

https://msdn.microsoft.com/en-us/office/office365/howto/create-web-apps-using-CORS-to-access-files-in-Office-365

我的帖子通过一步一步的教程说明了这个案例:

http://mosshowto.blogspot.fr/2015/11/embed-office-group-sharepoint-online.html