从昨天开始就研究cookie的问题。
发现在$.ready()中同时发起两个post请求,来获取cookie的值(当cookie值存在时获取,不存在时先创建后获取)时,理论上应该获取的cookie值是相同的,当实际上每一个post请求都重新创建了属于自己的新的cookie。后来问了下同事,他们说是异步的问题,当改成同步后就可以解决这个问题,然后我尝试着去做了。结果,我成功了,呵呵。
下面我便把如何在post或get中实现同步的部分代码共享一下,希望对有同样问题的朋友有所帮助,同时也希望各位达人给出意见:
解决方法1:
在全局设置: Js代码 $.ajaxSetup({ async : false //取消异步 }); 然后再使用post或get方法 Js代码 $.get("getCookie.action", {test : 12},function(data, status) { if (status == "success") { data = eval_r("(" + data + ")"); aDataSet = data; alert("data is " + aDataSet); } else { alert("wrong"); } });
解决方法2:
直接使用$.ajax,如: Js代码 $.ajax({ type : "post", url : "getCookie.action", data : "test=" + test, async : false,//取消异步 success : function(data){ data = eval_r("(" + data + ")"); aDataSet = data; } });
以上便是我的小示例,请各位多多指教。