Web api asp.net ajax 不记名令牌登录请求在 fiddler 中有效,但在 ajax 调用中无效

Web api asp.net ajax request for Bearer token login work in fiddler but does not work in ajax call

我在 visual studio 中将新的移动工具 Apache codova 与 jquery mobile 一起使用。我正在尝试向 asp.net web api 发出 ajax 请求以登录。在默认个人帐户中使用 /Token。 ajax 中的请求 return 错误,但是当我检查 fiddle 时,令牌是 return,状态为 200 OK,我希望 ajax 成功函数return 令牌。任何帮助将不胜感激。

这是我的代码:

var loginData = {
        grant_type: "password",
        username: $("#LoginEmail").val(),
        password: $("#LoginPassword").val()
    };

    $.ajax({
        type: 'POST',
        url: storeUrl + '/Token',
        data: loginData
    }).done(function (data) {
        alert(data.userName);
        alert(data.access_token);

    }).fail(showError);

    function showError(req, s, t)
    {
        alert('Request Status: ' + req.status + ' Status Text: ' + req.statusText + ' ' + req.responseText);
    }

将属性添加到 ajax 调用:

contentType: 'application/json; charset=utf-8',
dataType: 'json'

参考this问题

我通过添加 .

来解决这个问题
context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" });

在我的网络 api 项目的 ApplicationOAuthProvider class 的 GrantResourceOwnerCredentials() 函数中。