IE下使用jquery ajax失效的原因

在分析Bo-blog的代码时,发现js的路径竟然是带参数的,想想有点不可思议。
<script type="text/JavaScript" src="images/js/common.js?jsver=2.1.1.3626.0"></script>
细细研究下来,有以下三种可能:
2) Javascript和HTML,图片一样,作为静态文件会被浏览器缓存。后面加个随机数,能保证每次请求都是新文件,如common.js?t=12442344。 
3) 这个参数是供整体页面中查询js的参数所用,属js外部应用,但绝对不是供js的内部应用。如你有一个html页面,里面写上一段:
<script type="text/javascript" src="test.js?a=100&b=2"></script>
首先,这个?a=100&b=2是绝对不会影响到test.js的内部函数执行的,因为test.js无法接收到这个参数。
其次,这个?a=100&b=2是可以通过html中的DOM结构访问到这个js路径。如下例:
var Xsrc = document.getElementsByTagName("script")[document.getElementsByTagName("script").length-1].src
此时Xsrc能得到test.js?a=100&b=2,然后通过正则表达式的方法来解析出这些参数:a=100及b=2。然后你拿这两个参数实现一些判断。 
最后,回头来看看文首的?jsver=2.1.1.3626.0,第一种肯定是不可能的,不是每一种服务器都支持URLRewrite的。我觉得这个性质介于第二种和第三种之间。没觉得jsver=2.1.1.3626.0有什么实用的,顶多用来判断是什么版本,但这个版本号本来就是从PHP代码中得到的。我觉得这个参数多半是象征性的,没啥实际用处。

Java代码  

  1. <script>document.write("<script src='test.js?v="+Math.random()+"'></s"+"cript>");</script>  
  2. <script src='main.js?rnd=<?php echo uniqid();?>'></script>  

二前端部分

2 在 Ajax 的 URL 参数后加上 "?fresh=" + Math.random(); //当然这里参数 fresh 可以任意取了
3 第3种方法和第2种类似 在 URL 参数后加上 "?timestamp=" + new Date().getTime(); //推荐使用这种方式

Java代码  

  1. $.get("/ajax.asp?id="+ id +"&action=GameVote&r="+Math.random(),function (data){});  

 4.如果是跨域

Java代码  

  1. myurl?callback=?  

 

时间: 2024-11-08 18:25:13

IE下使用jquery ajax失效的原因的相关文章

IE下使用jquery ajax失效的原因总结

1,然后各种调试,最后发现:把ie把关了,再打开$.get().会调用,再第二次调用的用的时候发现又不行了.于是我推断是ie缓存的问题,把ie缓存清除后,果然可以了.但是客户不可能知道清理缓存.所以只能自己想办法了 在网上发现各大朋友都给了个方法就是用jquery自带的方法:  代码如下 复制代码 $.ajaxSetup({cache: false }); 另外还有分析是,ie是根据请求的url是不是一样来是否发送请求,对于同一请求,ie只发送一次http请求,所以同一请求发送多次,但ie实际是

Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)_jquery

其中用到了jquery插件来验证用户名哦,这里是利用jquery ajax来验证用户名是否存在哦.大家看看效果图,后面将附上源码下载. jquery框架实现的ajax 验证用户名是否存在的部分JS 复制代码 代码如下: $("#accounts").formValidator({onshow:"请输入用户名",onfocus:"用户名至少4个字符,最多10个字符",oncorrect:"该用户名可以注册"}).inputVal

Asp.net下使用Jquery Ajax传送和接收DataTable的代码_jquery

服务器再把GridView反构造成DataTable, 再给DataTable增加一行之后,绑定到GridView,然后发回客户端... 能不能简单一点呢? 在使用Ajax数据请求数据,通常都是简单格式,比如String,信息量较少.当然也可以请求回XML,但是XML数据冗余多,取到客户端处理比json麻烦的多. 能不能简单一点呢? 上面这些问题,如果DataTable与JSON类型可以方便的相互转换,都可以迎刃而解了. 优点:1)避免不必要的回传: 2)精简异步请求数据的大小 : 3)解决数据

firefox下jquery ajax返回object XMLDocument处理方法

 使用jquery ajax处理struts2 返回json类型的时候,ajax执行成功返回结果为object XMLDocument,解决方法如下 在firefox下使用jquery ajax处理struts2 返回json类型的时候,ajax执行成功返回结果为 [object XMLDocument].    处理办法:在getWriter.print():前面加上一行代码  代码如下: ServletActionContext.getResponse().setContentType("t

firefox下jquery ajax返回object XMLDocument处理方法_jquery

在firefox下使用jquery ajax处理struts2 返回json类型的时候,ajax执行成功返回结果为 [object XMLDocument]. 处理办法:在getWriter.print():前面加上一行代码 复制代码 代码如下: ServletActionContext.getResponse().setContentType("text/html;charset=UTF-8");

jQuery ajax serialize()方法的使用以及常见问题解决_jquery

使用ajax时,常常需要拼装input数据为'name=abc&sex=1'这种形式,用JQuery的serialize方法可以轻松的完成这个工作! jQuery ajax - serialize() 方法定义和用法 serialize() 方法通过序列化表单值,创建 URL 编码文本字符串. 您可以选择一个或多个表单元素(比如 input 及/或 文本框),或者 form 元素本身. 序列化的值可在生成 AJAX 请求时用于 URL 查询字符串中. jQuery ajax - serializ

浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法

 本篇文章主要是对jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助 在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值,这时很有可能是因为你用的是ajax的异步调用async:true(默认情况),如:    代码如下: function ManageCommentText(text) { var result = te

jQuery+AJAX实现无刷新下拉加载更多_jquery

随着互联网时代的发展,web前端已经和后台数据挂钩,作为web前端仅仅不是只切图写写html,css  和简单js交互. js  code $(function() { var page = 1; var discount = $('#discount'); var innerHeight = window.innerHeight; var timer2 = null; $.ajax({ url: '/lightapp/marketing/verify/apply/list?page=1', t

上传-jQuery ajax form提交在IE8下不执行回调函数

问题描述 jQuery ajax form提交在IE8下不执行回调函数 // 上传文件function myUploadExcel(obj) {var options = { url : ""${ctx}/ins/pro/upLoadTempFile.do?filename=""+obj.value dataType : ""text"" beforeSubmit : function(formDatajqFormoption