jQuery AJAX不设置Cookie(Set-Cookie标头为空)

时间:2017-07-09 08:30:27

标签: javascript jquery ajax asp.net-mvc cookies

我尝试在JavaScript中设置Cookie。没有跨域请求。 我有一个简单的jQuery AJAX POST代码:

console.log("before cookies:" + document.cookie);
$.ajax({
        url: "MYDOMAIN.COM",
        type: "POST",
        data: data,
        success: function (result, status, xhr) {
            var cookieSetData = xhr.getResponseHeader('Set-Cookie');
            var allHeader = xhr.getAllResponseHeaders();
            console.log("after cookies:" + document.cookie);
        }
});

记录结果

before cookies:
after cookies:

我从服务器发送的Cookie:

HttpCookie cookie = new HttpCookie("TempData");
cookie.Expires = DateTime.Now.AddMinutes(30);
cookie.Path = "/";
cookie.HttpOnly = false;
cookie.Value = somevalue;
ControllerContext.HttpContext.Response.SetCookie(cookie);

来自FireBag的响应标头:

Set-Cookie: "TempData=AAEAAAD/////A…ul-2017 08:23:13 GMT; path=/"
Cache-Control: "private"
Content-Type: "text/html; charset=utf-8"
Content-Encoding: "gzip"
Vary: "Accept-Encoding"
Server: "Microsoft-IIS/10.0"
X-AspNetMvc-Version: "5.2"
x-aspnet-version: "4.0.30319"
X-SourceFiles: "=?UTF-8?B?RDpc0JDQvdC00YDQtdC…BwaW5nQ2FydFxBZGRUb0NhcnQ=?="
X-Powered-By: "ASP.NET"
Content-Length: "576"

但是xhr.getResponseHeader('Set-Cookie')返回为空,浏览器不会自动设置cookie(日志窗口中没有cookie)。 xhr.getAllResponseHeaders()不包含“Set-Cookie”。 为什么呢?

使用jQuery.ajax保存cookie需要做什么?

0 个答案:

没有答案