日期:2014-05-20  浏览次数:20964 次

js 中Cookie的跨域问题
在一台服务器上有这样 一段程序:
 if (this.Request.Cookies["imgCode"] == null)
            {
                imgCookie = new HttpCookie("imgCode");
                imgCookie.Value = random;
                imgCookie.Domain ="http://localhost:59315/"; 
                this.Response.Cookies.Add(imgCookie);     
          }


现在在一个静态页面中有一段JS是去调用这个程序中的数据的。但是,JS中

   //获取指定名称的cookie的值
function getCookie(objName) {
    var arrStr = document.cookie.split("; ");
    for (var i = 0; i < arrStr.length; i++) {
        var temp = arrStr[i].split("=");
        if (temp[0] == objName) return unescape(temp[1]);
    }
    }

function Code_Written() {
      var vCode = ((document.getElementById("TB_code").value)).toLowerCase().trim(); 
      if (vCode != "") {
         //判断验证码是否正确             
        var code = getCookie("imgCode");  ;  
         //正确
         if (code.toLowerCase() == vCode) {
              return true;
        }    
    }
function readCookie() {

    //判断是否存在cookie
   
    var isExist = document.cookie.indexOf("imgCode=");

    //alert(isExist);
    if (isExist != -1) {
        //“imgCode=”后面的等号的位置
        var c = document.cookie.indexOf("=", isExist) + 1;
        //获取等号后面的字符串,也就是所需要的验证码!
        var str = document.cookie.substring(c)
        //alert(document.cookie.substring(c));

        if (document.getElementById("Image").value != str) {

            document.getElementById("Image").select();
            document.getElementById("imgCode").src = "http://localhost:59315/shortcut/code.aspx?abc=" + Math.random();
            alert("验证码输入错误!")
            return false;
        } else {
            return true;