Jquery 未发送信号器Cors Cookie

Jquery 未发送信号器Cors Cookie,jquery,azure,cookies,signalr,cross-domain,Jquery,Azure,Cookies,Signalr,Cross Domain,我有一个signarjavascript客户端()与signarapi()对话。信号机版本2.2.0。我需要通过cookie将令牌传递给Api。虽然这在dev中有效,但在部署到Azure应用程序服务时不起作用。cookie未与请求一起发送 JavaScript代码 //Set cookie document.cookie = "DomainAToken=" + token + "; domain=domainA.com; path=/"; //call signalr hub $.connec

我有一个signarjavascript客户端()与signarapi()对话。信号机版本2.2.0。我需要通过cookie将令牌传递给Api。虽然这在dev中有效,但在部署到Azure应用程序服务时不起作用。cookie未与请求一起发送

JavaScript代码

//Set cookie
document.cookie = "DomainAToken=" + token + "; domain=domainA.com; path=/";

//call signalr hub
$.connection.hub.start({
    withCredentials: true
}).done(init);
我正在Api上设置CORS策略。Owin启动:

var policy = new CorsPolicy
{
    AllowAnyHeader = true,
    AllowAnyMethod = true,
    SupportsCredentials = true
};

policy.Origins.Add("https://domainA.com");

app.Map("/signalr", map =>
{    
    map.UseCors(new CorsOptions
    {
        PolicyProvider = new CorsPolicyProvider
        {
            PolicyResolver = context => Task.FromResult(policy)
        }
    });
    map.RunSignalR(hubConfiguration);
});
返回响应头,如下所示

访问控制允许凭据:true 访问控制允许来源:


在localhost中它可以工作,但在Azure上,没有设置cookie。没有办法让Cookie与signalr跨域工作吗?

只是遇到了一些可能的原因

如果您在默认的azurewebsites.net域上使用此功能,则它无法工作的原因是浏览器阻止在某些域上设置cookie。有关参考信息,请参见:

答案也是如此:


是的,使用自定义dns是我解决问题的方法。它不适用于azurewebsites.net。正如马可所提到的,如果你把答案的关键部分贴出来,我很乐意把它标记为正确答案。