js跨域时IE9多次请求问题

今天遇到一个偏门的问题,前端使用<script>来跨域时,再IE9下总是发生多次请求问题

原有代码:

var sc='<script type="text/javascript" src="'+domain+'/getRedPacket.js?'+param+'"></script>';
$("body").append(sc);

一般正常情况下都这么写吧,可是这种写法在IE9下有个问题,会多次去请求这个js

看了浏览器发送的请求发现,请求地址后自动在参数里加了时间戳,这个在非IE9下是没问题的,但IE9会去请求两次,一次不带时间戳,一次带时间戳,这就有点尴尬了,万恶的IE

解决方案

var s=document.createElement('script');
			   s.type='text/javascript';
			   s.src=domain+'/getRedPacket.js?'+param;
			   document.getElementsByTagName('body')[0].appendChild(s);

这种方式不会自动加时间戳,自然也不会重复发送了,如果需要避免浏览器缓存,需要自己在param中加入时间戳

 param+="&_="+new Date().getTime();


猜你喜欢

转载自blog.csdn.net/suo082407128/article/details/77168459
今日推荐