html代码调用js,js方法封装ajax请求,在这个请求中,ajax不能setcookie,导致前端取不到值
代码如下:
<html lang="UTF-8">
<head>
<script src="D:\workSpace1\js\cookie1.js"></script>
<script src="D:\workSpace1\js\jquery-2.0.3.min.js"></script>
</head>
<body>
<script>
backJSONP("http://172.31.59.13:8080/interfaceManager/findAll");
</script>
</body>
</html>
function backJSONP(url)
{
$.ajax({
type : "GET",
url : url,
async: false,
crossDomain: true,
dataType: "jsonp",
jsonp: "callback",
beforeSend: function() {},
success : function(data) {
//alert(data);
setCookie("total",JSON.stringify(data.total));
console.log("total: "+getCookie("total"));
//alert(getCookie("success"));
alert(getCookie("total"));
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
}
function setCookie(name,value,outTime){
var expdate=new Date();
var outms=outTime*60*60*1000*24;
expdate.setTime(expdate.getTime()+outms);
var cookieStr=name+"="+escape(value)+";expires="+expdate.toGMTString();
//alert(123);
document.cookie=cookieStr;
//alert(document.cookie);
}
这个cookie 不是服务器设置更好么。
不应该在ajax发送前设置cookie么。
设置cookie是不是没有当作请求参数来的好。
我这个调用已经进入到了sucess中,但是就不存cookie值,感觉我的代码自动禁止浏览器存cookie
@不抱怨的世界: 两条分开
document.cookie=name+"="+escape(value)
document.cookie=expires="+expdate.toGMTString()
@长蘑菇星人: 我试试
没效果
我这个是本地存cookie,所以方法应该用这个
function set(key,val){
var curTime=new Date().getTime();
localStorage.setItem(key,JSON.stringify({data:val,time:curTime}))
}
function get(key,exp){
var data=localStorage.getItem(key);
var dataObj=JSON.parse(data);
if(new Date().getTime()-dataObj.time>exp){
console.log("已过期");
}else{
console.log("data="+dataObj.data);
return dataObj.data;
}
}