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 设置中启用跨站点脚本。