关于<<IE报错403且其他在浏…

还是先说说问题的起因吧,
问题:登陆刷新验证码.(django)
身为jquery白痴的我,写下了以下这段代码:
function clickname(){
      var $form, url;
      //$form = $(this).parents('label');
      url = location.protocol + "//" + window.location.hostname + ":" + location.port + "/captcha/refresh/";

      return $.getJSON(url, {}, function(json) {
              $('#id_captcha_0').val(json.key);
              return $('#imgname').children('img').attr('src', json.image_url);
      });
}
看不清验证码的时候可单击,重新获取新的验证码.
问题来了,在别的浏览器上都没有问题,可是偏偏到了IE就不行了,很蹊跷,
刚进去页面的时候第一次调用此方法的时候是没问题的,因此,博主判断方法本身是没有问题的;
打开IE调试,发现url,以及json.image_url的值都是有的,但是返回的image_url都是相同的.因此,博主可以判断url很可能没有执行.
且博主注意到,方法报了403.
解决:
$.getJSON()存在缓存问题,如果其调用的url之前曾经调用过的话,回调函数就会直接在缓存里取得想要得值,而不是进入到后台
因此:博主在url中加了一个参数,
url = location.protocol + "//" + window.location.hostname + ":" + location.port + "/captcha/refresh?ra="+new Date().getTime();
这样,每次生成的url就不一样,在缓存中找不着,因为就会每次执行.生成新的验证码

参考:http://www.jb51.net/article/35139.htm
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值