Javascript从跨域读取数据

时间:2014-07-21 03:28:58

标签: javascript jquery cookies

我的服务器正在缓存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的我的服务器页面时,我得到空值。谁能说出我做错了什么?

2 个答案:

答案 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.cookiesplit('; ')的值['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");
相关问题