针对.Net Core 2.0 web api的基本jquery ajax请求中的授权头为空

针对.Net Core 2.0 web api的基本jquery ajax请求中的授权头为空,jquery,basic-authentication,asp.net-core-webapi,Jquery,Basic Authentication,Asp.net Core Webapi,PostMan、Asp.Net客户端、fiddler和其他HTTP客户端工作正常。当我用下面类似的代码发出请求时,我得到了一个401。当我在web api端调试时,没有HeaderAuthorization值。HeaderAccessControlRequestHeaders中有一个值为“authorization”。我希望看到实际的base64编码值 eid=2 HTTP/1.1 Host: localhost:44322 Connection: keep-alive Access-Contr

PostMan、Asp.Net客户端、fiddler和其他HTTP客户端工作正常。当我用下面类似的代码发出请求时,我得到了一个401。当我在web api端调试时,没有HeaderAuthorization值。HeaderAccessControlRequestHeaders中有一个值为“authorization”。我希望看到实际的base64编码值

eid=2 HTTP/1.1
Host: localhost:44322
Connection: keep-alive
Access-Control-Request-Method: GET
Origin: http://localhost:50891
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36
**Access-Control-Request-Headers: authorization**
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9


您不应该直接设置授权头,而应该在beforeSend对象中这样设置

beforeSend: function (xhr) {
    xhr.setRequestHeader ("Authorization", "Basic " + btoa(username + ":" + password)); },

我终于能够在服务器端解决这个问题。使用.NETCore2.0,我有了自己的中间件。我不得不将app.UserCors()语句移到前面,突然出现了身份验证头。所以所有的通用文档都说明app.UserCors必须出现在app.UseMvc()之前,但我从未想过要将它放在我自己的自定义中间件前面


谢谢Chetan的回复

非常感谢您的回复。我至少尝试过一个版本,但没有成功。$.ajax({url:'',type:'GET',dataType:'json',beforeSend:function(xhr){xhr.setRequestHeader(“Authorization”,“Basic”+btoa(“username:password”);},…您能在这里发布完整的ajax调用吗?
beforeSend: function (xhr) {
    xhr.setRequestHeader ("Authorization", "Basic " + btoa(username + ":" + password)); },