我的服务器正在缓存cookie,格式类似于value1abc& value2cde等。我已经编写了一个函数来获取cookie
getData:function (target_url) {
var jqXHR = $.ajax({
url:target_url,
type: "Get",
async: false,
success: function (data) {
return data
}
,
error : function(jqXHR, textStatus, errorThrown) {
if(jqXHR.status == 404 || errorThrown == 'Not Found')
{
jqXHR.responseText="There was a 404 error";
}
}
});
我将这种方法称为
var result=this.getData("www.xxx.com");
alert(result);
但我一无所获。当我在本地服务器上创建一个样本测试页面,其值为value1abc& value2cde并将链接更改为var result=this.getData(test2.html");
然后它工作正常,我得到了结果。但当我替换实际存储这些cookie的我的服务器页面时,我得到空值。谁能说出我做错了什么?
答案 0 :(得分:0)
如果我已完全理解了这个问题,那么您正试图阅读cookies
设置的response header
。
如果是这样,您可以使用document.cookie
访问Cookie。
document.cookie
将为所有Cookie返回'; '
(semi colon followed by space)
分隔字符串。
例如,如果example.com
设置了以下cookies
a='123'
b='456'
c='789'
document.cookie
将返回a=1234; b=456; c=789
然后,您split
document.cookie
与split('; ')
的值['a=1234', 'b=456', 'c=789']
获取Cookie数组var cookies = document.cookie.split('; ');
cookies.forEach(function(cookie){
var cookie = cookie.split('=');
// print them to console
console.log('key : ' + cookie[0] + ' value : ' + cookie[1]);
// or use as per the need
});
让我们考虑以下代码
{{1}}
答案 1 :(得分:0)
您可以直接从客户端获取cookie,而无需通过ajax
询问服务器您可以使用document.cookie,但也可以使用简单的库like this one
然后,您可以访问以下Cookie:
var Cookie = $.getCookie("key");