web前端|js教程
jquery
web前端-js教程
asp源码 三网 商城,vscode跳转功能函数,ubuntu 入侵检测,tomcat怎么设置jvm,爬虫 外网,php 当前是第几周,秒收录软件seo公司,网站实用插件源代码,z-blog资讯模板lzw
推荐:《javascript基础教学》《jquery视频教学》
u大师u盘源码,个人ubuntu远程连接,易企秀爬虫,度php,电子seo策略lzw
关于jQuery的AJAX不兼容IE的解决办法
android 指纹解锁源码,vscode九九乘法表,ubuntu打开idrac,tomcat测试网址是多少,爬虫库pip,php如何发邮件,福建短视频seo怎么做lzw
在使用jQuery的AJAX:get方法去检测数据是否存在时,会发现IE会出现不兼容的情况。
用AJAX:post方法时,使用Chrome/FireFox/IE均能出现正确的结果,但是在使用AJAX:get方法时,IE却不能返回正确的结果。
难道是数据超出了get方法的限制的长度,这个也不可能,我总共才传了一点点数据。排除。
网上一些网友说是IE缓存的问题,在请求数据后边加上随机数就行,比如加上时间数new Date().getTime()。
先前的代码中我已经添加了随机数,用的是“Math.random()”也不行。难道用时间比较靠谱?
那就改成获取时间试试,在参数后加“new Date().getTime()”后反复测试还是不行,真是百思不得其解!这个错误也排除了。
反复查看手册后发现请求的数据格式还是有一种JSON格式,如{foo:[“bar1”, “bar2”]} ,然后就按照这种格式书写,还真的返回了正确的查询结果。真不知道IE还有这点要求。(完)
先前的格式:
type: "get",data: "bid="+my_bid+"&name_cn="+name_cn+"&timeStamp="+new Date().getTime(),
改进后格式:
type: "get",data: {id:my_bid, ame_cn:name_cn, imeStamp:new Date().getTime()},
在jQuery手册中是这样描述的:
data Object,String
发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。
查看 processData 选项说明以禁止此自动转换。必须为 Key/Value 格式。
如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:[“bar1”, “bar2”]} 转换为 “&foo=bar1&foo=bar2″。
代码片段:
var siteUrl="/cnwyt"; jQuery.ajax({type: "get",url: siteUrl+"cosmetics/product/ajax_check?",//data: "bid="+my_bid+"&name_cn="+name_cn+"&timeStamp=" + new Date().getTime(),data: {id:my_bid, ame_cn:name_cn, imeStamp:new Date().getTime()},dataType: json,error: function (err) { alert(网络故障,请与管理员联系!) },success: function (message) {if(message!=false){//ture的代码}else{//false的代码}});
编程教学!!
如果觉得《如何解决jquery ajax不兼容ie8的问题》对你有帮助,请点赞、收藏,并留下你的观点哦!