ASP.NET Web API と SignalR を使用して Web アプリケーションを構築しています。私は HTTP についてかなりよく理解していますが、この問題は私には理解できません。
現在、この API へのすべての AJAX リクエストに Cookie を設定しています。API への後続の AJAX 要求は、問題なく Cookie を送信します。
ただし、接続を確立するSignalRリクエストでもこのCookieを使用したいのですが、Chromeによると、これらのリクエストではCookieが送信されていません。Cookie を HTTPOnly に設定しています。現在、すべてがローカルで実行されています。すべてのリクエストは に送信されlocalhost:port
ます。Cookie のドメインlocalhost
も同様に設定されています。
私の SignalR 接続は次のようになります。
var connection = $.connection("/updates");
/* set handlers here */
connection.start(function () {
console.log("connection started!");
});
Chrome はこれが CORS リクエストであると判断し、Cookie を保留しているようです。ただし、リクエストは同じドメイン上にあるため、これはあまり意味がありません。