Microsoft Graph API:Access-Control-Allow-Origin

时间:2017-04-28 04:36:47

标签: jquery office365 office365api azure-ad-graph-api

我正在尝试集成Microsoft Graph身份验证和访问sharepoint以及用户的Graph Profile& PIC。我按照他们的文件https://developer.microsoft.com/en-us/graph/docs/authorization/app_authorization进行了 我能够实现第一步验证用户并获得授权的应用,但不能获取访问令牌。 我在Postman中检查过它,能够获得访问令牌的响应。我尝试使用 Jquery Ajax 尝试使用

进行此操作的方式相同
  

XMLHttpRequest无法加载   https://login.microsoftonline.com/common/oauth2/token。没有   '访问控制允许来源'标题出现在请求的上   资源。

$.ajax({ type:"POST",headers: {
    'Content-Type':'application/x-www-form-urlencoded'
},
crossOrigin: true,url: "https://login.microsoftonline.com/common/oauth2/token",data:$.param({grant_type: "authorization_code",redirect_uri:"http://localhost:92",client_id:"8c907c91-1b21-4468-825e-116a4f663249",client_secret:"xxxxxxxxx+=",code:"AQABAAIAAABnfiG-mA6NTae7CdWW7QfdkHvUMGWjMMTjOGwaac7c-pFOjLqj98r37uhB1a1XqjnCL-nK5HcvRIYLhLSUQJZeY9ybZLgWfSl4U0CNdZkwIvee_r6-hPC0Wts0ULDWzkg_nHWLHrquAjJ67T84vuIUv8525xTVdm1Ej07EPRttlske50jy1lruaLX0Wzdj72VnAQ0iRHB_VKwEA-1YB7VOt6qh9756XYkDUfzJMZTxTawT5PVQFyv2joy0TbUYljkyT8RgzdhgT6YV6Rum3cQZg3Amso-0-6umF_1ECfdjmXXxdkscAmsGJHZPrZ1HE8W9zhfsGKlc57QI8J3Qkz-Wfkw8lxcfpp84wHmKnA28jWrww7szXVjjsYmtNsRpSYIvq393QoUZnWN-t0D71510pVAYswr6R3_rR80SMrMvolIpoXeIvPDoOkLszgYEeNRkGAcjVYD5XS4aajyrWqCSUz3xzNt8Vb6x9QBCWxw9xAottQM5ZZIbWc9zrKmmPL8sqkEpJ7Z95QdJjgkFy0qT5c_GQwKNoAiF96iVhyLiULvjwlFYsV9d84QGnz_a5NIt6mMbhgJoY32snEJN7kMyK9uzTHdglkkl-9UgJNnpArN5D8hywaERMN4Fy7RZxnqx9Mt4UnnfK9-RnjvaIE6TIAA",resource:"https://graph.microsoft.com/"}), success: function(result){
    $("#div1").html(result);
},
error: function(){

    $("#div1").html("Error");
}});

但是在Console中,我可以看到post方法的响应,因为对于' Acces-origin'问题,我无法在Ajax Success部分获得响应。 But in Console, I can see the response for POST Method

1 个答案:

答案 0 :(得分:0)

常规网页可以使用XMLHttpRequest对象来发送和接收来自远程服务器的数据,但它们受到相同原始策略的限制。因此浏览器会阻止它,因为它通常允许同一来源的请求安全原因。邮递员将继续工作,因为他们不受此政策的限制。

要在javascript中集成AAD,我们建议您使用azure-activedirectory-library-for-js这是javascript中的库,前端可以轻松地集成AAD,使用implicit grant flow,它还具有消除任何功能的优势交叉源调用的要求,如果需要JavaScript应用程序联系令牌端点,则这些要求是必需的。 Here是一个讨论相同主题并展示如何使用ADAL.JS的线程,请参阅。