作为旨在显着改善SharePoint Online网站视觉效果的项目的一部分,我有点卡住了。在左侧横幅的主页上,用户希望查看他们在Office365中拥有的未读邮件数。
我在母版页中创建了一个区域来放置结果。我认为Rest API用于执行此操作:
$.ajax ({
type: "GET",
url: " https://outlook.office365.com/ews/odata/Me/Folders/Inbox",
dataType : "json",
success : function (resp) {
// count unread messages
},
error : function (e) {
alert (' Error121212 :' + JSON.stringify (e));
}
})
不幸的是我收到了像跨域这样的错误。我尝试使用JSONP,但它也不起作用(未捕获的语法错误意外令牌)。
请告诉我这是不是一个好习惯?我觉得无论如何我必须找到一种认证技术。 (在JSONP的情况下,我有一个弹出窗口,要求我进行身份验证,然后显然会在回调上出现问题)......
我想避免开发一种需要典型部署Wsp的类型......
提前感谢您的帮助。
答案 0 :(得分:0)
您的ajax请求的网址似乎不正确。通过API获取收件箱邮件的网址为:https://outlook.office365.com/api/v1.0/me/folders/inbox/messages
获得响应后,您可以使用简单的for循环计算IsRead
属性设置为false
的对象数,并显示该计数。
答案 1 :(得分:0)
此处的问题与CORS以及浏览器拒绝处理跨域请求有关。要解决这个问题,通常你会
我知道您规定要避免使用WSP样式部署,但根本没有解决方法,您必须使用SharePoint App模型
This文章很大程度上回答了您的问题,但完成后基本步骤如下
在App Manifest中,您需要使用AppManifest部分定义与远程主机(在本例中为outlook.office365.com的主机)的信任关系
使用SP.RequestExecutor.executor代表您提出请求