Javascript jQuery AJAX调用作为选项发送,缺少授权头

Javascript jQuery AJAX调用作为选项发送,缺少授权头,javascript,c#,jquery,ajax,http,Javascript,C#,Jquery,Ajax,Http,我开始被这件事难住了。我正在开发一个C#.NETWebAPI服务和前端应用程序来使用它。我一直很难使用令牌对我的请求进行身份验证,而jQuery似乎遇到了麻烦。我可以很好地获得令牌,但jQuery不会在进一步的请求中将其添加到授权头中 我的设置是一个index.html页面,其中包含几个jQuery移动页面。它从一个“#login”页面开始,该页面向my/Token URI发送一个带有用户名、密码和授权类型的请求。这是成功的,返回的是令牌。页面更改为“#home”,并向/api/values发送

我开始被这件事难住了。我正在开发一个C#.NETWebAPI服务和前端应用程序来使用它。我一直很难使用令牌对我的请求进行身份验证,而jQuery似乎遇到了麻烦。我可以很好地获得令牌,但jQuery不会在进一步的请求中将其添加到授权头中

我的设置是一个index.html页面,其中包含几个jQuery移动页面。它从一个“#login”页面开始,该页面向my/Token URI发送一个带有用户名、密码和授权类型的请求。这是成功的,返回的是令牌。页面更改为“#home”,并向/api/values发送一个测试ajax调用以获取值。问题是jQuery没有添加名为“Authorization”的头,而是添加了一个值为“accept,Authorization”的“Access Control Request Headers”。起初我认为这是CORS的问题,但当我在Chrome中使用高级Rest客户端发送请求时,请求工作正常

来自“主页”的AJAX调用


提前感谢您的帮助,我一整天都在碰壁。

也许我遗漏了什么,但为什么不使用表单身份验证呢?这将是一个Phonegap移动应用程序,所以我们需要使用令牌身份验证,也许可以尝试使用“bearer”(RFC6750:credentials=“bearer”1*SP b64token)中的大写首字母只是尝试了大写和小写。还刚刚意识到我输入了一个“Basic”而不是“Bearer”,但在第二个屏幕截图上没有任何变化,我看到你使用Bearer身份验证,但在这里的代码中是Basic Auth。确保对承载身份验证使用正确的语法,而不是“基本承载b64Token”。setRequestHeader()u可以始终使用header属性来发送:header:{“Authorization”:“Bearer”+bearerToken}
$.ajax({
        url: 'http://slalomtest2.azurewebsites.net/api/values/',
        type: 'GET',
        async: true,
        dataType:"json",
        beforeSend: function(request){
            request.withCredentials = true;
            request.setRequestHeader("Authorization", "Basic " + Token);
        },
        success: function(result){
            console.log(result);
        },
        error: function(request, error){
            $.mobile.changePage("#login");
        }
    });