抓到的包
GET /user/core.php?act=userCode&user=qaaqqq&jsoncallback=jQuery17205766169718664956_1374906957843&_=1374907310500 HTTP/1.1生成jsoncallback后面的一串数字的js代码
$.getJSON('http://www.xxxx.com/user/xxx.php?act=userCode&user='+encodeURIComponent(user)+'&jsoncallback=?',function(re){
      checking = '';
      keys_time[user] = (new Date).getTime();
      keys[user] = [re['data'], re['status']? 1: 0];
      verification_code(re['status'], user);
      if (typeof callback == 'function') callback();
    })
资料上说的 getJSON后的?由jquery生成的数字替代。我想知道jquery是怎样生成这窜数字的jQuery17205766169718664956_1374906957843这一部分根据jquery源码应该有下面代码生成
[code=javascript]expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ),jsonpCallback: function() {
return jQuery.expando + "_" + ( jsc++ );
}

var jsc = jQuery.now(),now: function() {
return ( new Date() ).getTime();
}[/code
但是后面的&_=1374907310500,这一串数字没找到来源,求大神指点.只有90分全给你了

解决方案 »

  1.   

    _是时间戳,防止缓存用的调用的还是jQuery.now()这个方法 // Add anti-cache in url if needed
    if ( s.cache === false ) { var ts = jQuery.now(),
    // try replacing _= if it is there
    ret = s.url.replace( rts, "$1_=" + ts ); // if nothing was replaced, add timestamp to the end
    s.url = ret + ( ( ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" );
    }
      

  2.   

    每次抓的包后面两个数字不等      jQuery.....1374906957843&_=1374907310500
    我用jQuery.now()两个数字是相等的jQuery.....1374933434031&_=1374933434031 
      

  3.   

    还有就是为啥winform程序里我收到的都不变jQuery172038564998196220396_1374935228500({"status":false,"data":"a25dfd9b"})浏览器里每次抓到的都会变
      

  4.   


    winform用jquery?。。没明白什么意思。。
      

  5.   

    抓的包:
    winform里面收到的
      

  6.   

    浏览器里删除cookie,在刷新页面,会收到新的json数据,winform里收到的不变.winform没用webbrowser控件
      

  7.   

    HttpWebResponse res = (HttpWebResponse)req.GetResponse();
                Stream stream = res.GetResponseStream();
                StreamReader reader = new StreamReader(stream, Encoding.UTF8);
    这样就能收到数据了啊
      

  8.   

    HttpWebRequest对象的url配置你就没变过吧,当然不会变。。浏览器是自动根据当前时间返回时间戳的。。你要winform也得到对应的jsonp返回值,就需要动态构造url,通过DateTime得到时间戳,需要转换比较麻烦,可以调用ToString方法生成唯一时间就行url+="&_="+Date.Now.ToString("yyyyMMddHHmmssfff");
      

  9.   

    url我是动态构造的,按照js里做的一样
      

  10.   

    地址每次都变的,就是收到的data:后的数据不变。浏览器中就不一样,删除cookie,刷新就会得到新的data数据
      

  11.   

    cookie我也根据他的方式实现的