JQuery Ajax 对 Microsoft Office365 Unified 的请求 API 失败,错误代码为 0
JQuery Ajax requests to Microsoft Office365 Unified API Failing with Error Code 0
我目前正在尝试通过 Microsoft Unified API 进行身份验证以检索数据。我关注了他们通过 Fiddler 中的连接进行的深入研究,并取得了成功。我现在正尝试在测试网站上将其转换为 运行 的代码。
我必须创建一个 POST 请求到指定的 URL,我已经通过以下代码完成了:
var url = "https://login.microsoftonline.com/" + tenantId + "/oauth2/token";
var data = 'grant_type=authorization_code' +
'&redirect_uri=http://localhost:61104/Views/Home.html' +
'&client_id=' + clientId +
'&client_secret=' + clientSecret +
'&resource=https://graph.microsoft.com' +
'&code=' + oauthCode;
$.ajax({
type: "POST",
url: url,
headers: {
"Accept": "application/json",
"Content-Type": "application/x-www-form-urlencoded"
},
data: data,
success: function (a, b) {
alert('success');
},
error: function (a, b, c) {
alert('fail');
}
});
然而,这命中了错误函数,除了 "error code 0" 之外,响应什么也没有给我。我尝试删除所有数据和 headers 并仅发布到 URL,但我再次收到错误代码 0.
我用谷歌搜索并确保它不是我的页面刷新或重新加载,事实并非如此。我通过发布到另一个 REST 服务来测试它,它运行良好。
这是我第一次使用 oAuth 并发帖,所以我假设我在某个地方犯了新手错误。我错过了什么?谢谢。
编辑:要添加,我尝试了最低要求,只有:
$.ajax({
type: "POST",
url: url
}
它仍然失败并出现错误 0。我在 Fiddler 中复制了它,并得到了预期的响应(错误 400)。
我通过添加解决了这个问题:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
到 web.config
文件。我还必须在 IE 设置中启用跨站点脚本。
我目前正在尝试通过 Microsoft Unified API 进行身份验证以检索数据。我关注了他们通过 Fiddler 中的连接进行的深入研究,并取得了成功。我现在正尝试在测试网站上将其转换为 运行 的代码。
我必须创建一个 POST 请求到指定的 URL,我已经通过以下代码完成了:
var url = "https://login.microsoftonline.com/" + tenantId + "/oauth2/token";
var data = 'grant_type=authorization_code' +
'&redirect_uri=http://localhost:61104/Views/Home.html' +
'&client_id=' + clientId +
'&client_secret=' + clientSecret +
'&resource=https://graph.microsoft.com' +
'&code=' + oauthCode;
$.ajax({
type: "POST",
url: url,
headers: {
"Accept": "application/json",
"Content-Type": "application/x-www-form-urlencoded"
},
data: data,
success: function (a, b) {
alert('success');
},
error: function (a, b, c) {
alert('fail');
}
});
然而,这命中了错误函数,除了 "error code 0" 之外,响应什么也没有给我。我尝试删除所有数据和 headers 并仅发布到 URL,但我再次收到错误代码 0.
我用谷歌搜索并确保它不是我的页面刷新或重新加载,事实并非如此。我通过发布到另一个 REST 服务来测试它,它运行良好。
这是我第一次使用 oAuth 并发帖,所以我假设我在某个地方犯了新手错误。我错过了什么?谢谢。
编辑:要添加,我尝试了最低要求,只有:
$.ajax({
type: "POST",
url: url
}
它仍然失败并出现错误 0。我在 Fiddler 中复制了它,并得到了预期的响应(错误 400)。
我通过添加解决了这个问题:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
到 web.config
文件。我还必须在 IE 设置中启用跨站点脚本。