http get请求发送失败,返回304错误

来源:互联网 发布:grub windows引导项 编辑:程序博客网 时间:2024/05/21 12:39

现象:设置不同分辨率时,设置成功,视频预览会变,但当又返回来再设置为某个分辨率时,发现设置不成功,视频分辨率不会变。部分代码如下:

url='set_param.cgi?';url+='&height='+height;url+='&bit_rate='+encodeURIComponent($("#bit_rate").val());$.ajax({    url: url,    async: false,//改为同步方式    type: "GET",    data: {},    success: function (result) {        if(result.match('"result":false'))                alert(_sdcard_alarm);        console.log("result = "+result); } });//同步设置某个值url='get_param.cgi?next_url=bstr.htm';url+='&group_tag=video_param';$.getScript(url,function(){    channel_cookie();});//刷新页面

在浏览器中调试,查看网络状态,最终发现浏览器报了一个304错误:304 not modified ,如下图304错误
百度发现是浏览器缓存问题,将同一个链接认为是相同的请求,所以便没有往服务器端发送该请求以致于设置失败。
所以解决办法:在发送url时加上一个随机数,通常是时间如:
url+='&' + new Date().getTime() + Math.random();
完整代码如下:

```url='set_param.cgi?';url+='&height='+height;url+='&bit_rate='+encodeURIComponent($("#bit_rate").val());***url+='&' + new Date().getTime() + Math.random();***$.ajax({    url: url,    async: false,//改为同步方式    type: "GET",    data: {},    success: function (result) {        if(result.match('"result":false'))                alert(_sdcard_alarm);        console.log("result = "+result); } });//同步设置某个值url='get_param.cgi?next_url=bstr.htm';url+='&group_tag=video_param';$.getScript(url,function(){    channel_cookie();});//刷新页面

“`

原创粉丝点击