使用刷新令牌获取访问令牌 office 365 rest api
using refresh token to get access token office 365 rest api
在使用刷新令牌通过 Office 365 REST 获取访问令牌时 api 我提出了以下 Jquery ajax 请求。
jQuery.ajax({
url: "https://outlook.office365.com/common/oauth2/token",
type: "post",
headers:{
"Content-Type":"application/x-www-form-urlencoded"
},
data: {
grant_type: "refresh_token",
refresh_token: access_data['refresh_token'],
client_id: consumer_key,
client_secret: consumer_secret,
resource: "https://outlook.office365.com"
},
success: function(response){
console.log(response)
}
})
我收到以下错误
XMLHttpRequest cannot load
https://outlook.office365.com/common/oauth2/token.
No 'Access-Control-Allow-Origin' header is present on the requested
resource. Origin 'http://localhost' is therefore not allowed access.
The response had HTTP status code 404.
但我能够使用相同的 refresh_token
和 client credentials
通过 requests
库在 python 中发出相同的 POST 请求,但我无法确定找出为什么相同的 POST 请求无法通过 jQuery
工作。在此问题上的任何帮助表示赞赏。
谢谢
http://outlook.office365.com
资源支持 CORS,因此您不应该 运行 遇到这个问题。我发现了这个 question on Stack Overflow 并且接受的答案表明 jQuery 更改了请求,因此 CORS 不起作用并且您需要在执行请求之前编辑请求 headers。
确保您的 jQuery 请求具有正确的 header。
Access-Control-Allow-Headers: x-requested-with
一旦您使用 CORS,请注意 CORS 使用隐式授权流,因此您将不会获得刷新令牌。
查看 http://www.cloudidentity.com/blog/2014/10/28/adal-javascript-and-angularjs-deep-dive/ 以了解有关隐式授权流程的更多信息。
如果您从本地主机执行此操作,大多数浏览器不允许来自本地主机的 CORS。研究在您的浏览器中找到正确的 flags/configuration 以从本地主机启用 CORS。 Chrome 有一些您可以设置的扩展和标志。
在使用刷新令牌通过 Office 365 REST 获取访问令牌时 api 我提出了以下 Jquery ajax 请求。
jQuery.ajax({
url: "https://outlook.office365.com/common/oauth2/token",
type: "post",
headers:{
"Content-Type":"application/x-www-form-urlencoded"
},
data: {
grant_type: "refresh_token",
refresh_token: access_data['refresh_token'],
client_id: consumer_key,
client_secret: consumer_secret,
resource: "https://outlook.office365.com"
},
success: function(response){
console.log(response)
}
})
我收到以下错误
XMLHttpRequest cannot load
https://outlook.office365.com/common/oauth2/token.
No 'Access-Control-Allow-Origin' header is present on the requested
resource. Origin 'http://localhost' is therefore not allowed access.
The response had HTTP status code 404.
但我能够使用相同的 refresh_token
和 client credentials
通过 requests
库在 python 中发出相同的 POST 请求,但我无法确定找出为什么相同的 POST 请求无法通过 jQuery
工作。在此问题上的任何帮助表示赞赏。
谢谢
http://outlook.office365.com
资源支持 CORS,因此您不应该 运行 遇到这个问题。我发现了这个 question on Stack Overflow 并且接受的答案表明 jQuery 更改了请求,因此 CORS 不起作用并且您需要在执行请求之前编辑请求 headers。
确保您的 jQuery 请求具有正确的 header。
Access-Control-Allow-Headers: x-requested-with
一旦您使用 CORS,请注意 CORS 使用隐式授权流,因此您将不会获得刷新令牌。 查看 http://www.cloudidentity.com/blog/2014/10/28/adal-javascript-and-angularjs-deep-dive/ 以了解有关隐式授权流程的更多信息。
如果您从本地主机执行此操作,大多数浏览器不允许来自本地主机的 CORS。研究在您的浏览器中找到正确的 flags/configuration 以从本地主机启用 CORS。 Chrome 有一些您可以设置的扩展和标志。