$.ajax({
type: 'POST',
url: 'xxxx.com/init',
ContentType: 'application/json',
dataType: 'json',
data: data,
success: function(resp) {
$.cookie("tc", resp.tokenCode);
}
});
console.log($.cookie("tc"));
我尝试在成功中创建一个cookie,但它似乎不起作用。它记录未定义......
答案 0 :(得分:1)
那是因为ajax调用是异步操作。可以看到cookie的函数需要设置为回调或在页面重新加载时访问(如果cookie仍然存在)。
$.ajax({
type: 'POST',
url: 'xxxx.com/init',
ContentType: 'application/json',
dataType: 'json',
data: data,
success: function(resp) {
$.cookie("tc", resp.tokenCode);
myFunction();
}
});
function myFunction() {
console.log($.cookie("tc"));
}
由于您在使用$.cookie
方面遇到问题,可以像这样使用localStorage
或sessionStorage
:
localStorage.tc = resp.tokenCode;
console.log(localStorage.tc);
答案 1 :(得分:1)
您的console.log
在您的ajax呼叫完成之前正在运行,这就是所谓的竞争条件。在ajax调用完成之前,浏览器会转到console.log
,因此尚未设置您的cookie,因为尚未调用成功回调函数。尝试将该日志语句放在回调中:
success: function(resp) {
$.cookie("tc", resp.tokenCode);
console.log($.cookie("tc"));
}
答案 2 :(得分:0)
console.log在成功回调之前运行。将日志放入回调中,看看会发生什么。