这是为了防止恶意请求,异步请求不能不间断的发送,你想想啊,如果可以不间断的发送这些东西,那在前台随便写个for循环,一直发送请求,那服务器还不立马就挂掉了你试试使用setTimeout,设置隔一段时间再发送请求。或者是请求的时候,添加一个random随机量试试。反正你这样直接不间断的发,是不行的。

解决方案 »

  1.   


    这样有点解释不过吧我要是for i 1-9999 img src *.jpg?i 不是也是可以一直发。然后我修改 加上了一个高达5S的延迟- -setTimeout(function(){var sdata=get_web_by_get('/temp/test.php?id=123');
    var sdata=get_web_by_get('/temp/test.php?id=124');},5*1000);
    setTimeout(function(){up_data(sdata);},5*1000);
    还是不行。。
      

  2.   

    setTimeout(function(){
    var sdata=get_web_by_get('/temp/test.php?id=123');
    var sdata=get_web_by_get('/temp/test.php?id=124');
    },5*1000);
    setTimeout(function(){up_data(sdata);},5*1000);这就是你说的延时了,你把所有的都延时到5秒之后了,那意思,还不是全部5秒之后执行的?
    还是在同时发出的请求啊。function aaa(id){
    var sdata,
        speed = 1000;

    sdata = get_web_by_get('/temp/test.php?id='+id);
    setTimeout(function(){up_data(sdata);},speed);
    setTimeout(function(){id++;aaa(id);},2*speed);
    }
    aaa(123);你这样试试,这里我没有加入结束的代码,所有就会一直发送。如果还不行,
    get_web_by_get('/temp/test.php?id='+id+"&data="+(new Date().getTime()))多试试吧。
      

  3.   


    function get_web_by_get(url){var lhttp=new XMLHttpRequest();lhttp.onreadystatechange=function()
    {
    if(lhttp.readyState==4 && lhttp.status==200)
    {
    var get_result;
    get_result=lhttp.responseText;
    }
    }
    lhttp.open("GET",url,true)
    lhttp.send();
    return get_result;
    }又试了几个好像是这个函数的问题 请求是发送出去了 也得到结果,但是结果没有作为函数的返回值诶。
      

  4.   

    var get_result;
    你把这个定义到外面,看看,因为你这里定义到一个局部作用域去了。
    所以你返回值的时候,返回的undefined。
      

  5.   


    之前发现了后来又测试了几次发现xmlhttp可以跨域提交数据但是不能获得返回的结果。
      

  6.   


    不能这么多 比如XSS遇到HTTPONLY就可以获取当前和指定界面 然后提交到自己网站。