【问题标题】:Microsoft Graph API : Access-Control-Allow-OriginMicrosoft Graph API:访问控制允许来源
【发布时间】:2017-05-01 15:47:51
【问题描述】:

我正在尝试集成 Microsoft Graph 身份验证和访问共享点以及用户的 Graph Profile & Pic。我关注了他们的文档https://developer.microsoft.com/en-us/graph/docs/authorization/app_authorization
我能够实现第一步验证用户并获得应用授权,但不能获取访问令牌。 我已经在 Postman 中检查过了,能够得到访问令牌的响应。与我尝试使用 Jquery Ajax 的方式相同,但得到 ​​p>

XMLHttpRequest 无法加载 https://login.microsoftonline.com/common/oauth2/token。不 请求中存在“Access-Control-Allow-Origin”标头 资源。

$.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");
}});

但是在控制台中,我可以看到 post 方法的响应,因为对于“访问源”问题,我无法在 Ajax 成功部分中得到响应。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • Angular 2 有没有官方的 Adal 组件可用?
    • @PraveenR,目前没有可用于 Angular 2 的官方 Adal 组件,请参考 this discussion,但您可以参考该讨论中提到的代码示例 (github.com/sureshchahal/angular2-adal)。跨度>
    • 使用那个单一的令牌,我可以获得 Sharepoint 和 Office Graph 的详细信息吗?怀疑,通常要访问特定资源,我们应该为每个资源使用不同的令牌(根据文档)。喜欢资源:xxxx.sharepoint.com
    • 是的,您可以获得 [Microsoft Graph API](developer.microsoft.com/en-us/graph) 的访问令牌,并使用该令牌通过 microsoft graph api 访问相关资源。
    • Microsoft Graph 通过单个端点公开来自 Office 365 和其他 Microsoft 云服务的多个 API:graph.microsoft.com
    猜你喜欢
    • 2016-12-10
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多