我有一个使用jQuery的javascript函数向Web服务发出POST请求。 Web服务响应有一个标题" Set-Cookie:name = value;域= api.mydomain.com; path = /"和JSON正文。
我希望浏览器设置cookie,但事实并非如此。我错误地认为这应该如何运作?是否有另一种方法可以让浏览器设置响应头中返回的cookie?
$.ajax(
{
type: "POST",
url: "https://api.mydomain.com/service",
data: body,
success: handleSuccess,
error: handleFailure
}
);
答案 0 :(得分:0)
您可以在jQuery中使用localStorage将数据存储在浏览器中。要设置数据,请使用
alert(localStorage.yourdataname);
要恢复数据,请使用
{{1}}
如果AJAX请求的灵魂目的是在浏览器中设置数据,您只需使用上面的代码请求AJAX。
答案 1 :(得分:0)
根据XMLHttpRequest Level 1和XMLHttpRequest Level 2,这个特定的响应头部属于你可以使用getResponseHeader()
获得的“禁止”响应头。$.ajax({
type: 'POST',
url:"https://api.mydomain.com/service",
data: body,
success: function(output, status, xhr) {
alert(xhr.getResponseHeader('Set-Cookie'));
},
cache: false
});
如果它在您的浏览器上不起作用,请使用此
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1);
if (c.indexOf(name) != -1) return c.substring(name.length,c.length);
}
return "";
}
success: function(output, status, xhr) {
alert(getCookie("MyCookie"));
},
希望这有帮助。