IE6 ajax解析parseerror
IE6下,用a[href="javascript:void(0);"]或者a[href="javascript:;"]发起ajax|jsonp请求会出现请求成功,返回数据无法解析的情况,直接解析报错"parseerror",其他浏览器则解析正常,本地调试正常,放到服务器上,同一个ajax请求IE6会经常(偶尔会解析正常)出现问题。
<a href="javascript:;" id="btn">点击发送请求</a>
$("#btn").click(function(){
$.ajax({
url : "your address",
dataType : "json", // |jsonp
success : function(data){
// 非IE6能够正常执行成功回调
},
error : function(jqXHR, textStatus, thrown){
// IE6直接输出textStatus为parseerror错误
}
});
});
究其原因,在于<a>的href属性为javascript:void(0)或者javascript:;。
"javascript:**"作为javascript的伪协议,给a标签的href赋空置,是期望生成一个空的href的a标签,自带鼠标手型,却又不作为<a>跳转, 语义化好,其他浏览器也能正常识别,但是伟大的IE6认为"此时<a>还存在默认的跳转行为,IE6会尝试刷新或重定向页面地址,且中断正在进行的请求,此时请求程序已经中断但是请求结果已经返回,则请求结果被搁置不能解析"。
解决的办法有几种:
1、更换a标签为其他,如span,div;
<span id="btn">点击发送请求</span>
$("#btn").click(function(){
$.ajax({
url : "your address",
dataType : "json", // |jsonp
success : function(data){
// 包括IE6在内浏览器能够正常返回
},
error : function(jqXHR, textStatus, thrown){}
});
});
2、阻止a的默认事件
<a href="javascript:;" id="btn">点击发送请求</a>
$("#btn").click(function(e){
e.preventDefault();
$.ajax({
url : "your address",
dataType : "json", // |jsonp
success : function(data){
// 非IE6能够正常执行成功回调
},
error : function(jqXHR, textStatus, thrown){
}
});
});
3、取消a的javascript:协议,换成###
<a href="javascript:;" id="btn">点击发送请求</a>
$("#btn").click(function(e) {
$.ajax({
url: "your address",
dataType: "json", // |jsonp
success: function(data) {
// 非IE6能够正常执行成功回调
},
error: function(jqXHR, textStatus, thrown) {
}
});
});
a[href="#"]锚点,锚标记为空,则取默认值为#top,所有浏览器点击该a会跳转到页面顶部;
a[href="##"] 锚点,锚标记为#,IE下点击依然会跳转到页面顶部;
a[href="###"]空链接。
以上三种情况,点击之后都会在地址栏追加锚点值,影响美观。
IE6 ajax解析parseerror的更多相关文章
- jQuery ajax解析xml文件demo
解析xml文件,然后将城市列表还原到下拉列表框中:当选择下拉列表框时,在对应的文本框中显示该城市信息. 前端代码: <!doctype html> <html> <hea ...
- 使用js接收ajax解析的json再拼成一个自己想要的json
//ajax解析的json{ "status": 1, "content": { "pathsInfo": [ { "id&quo ...
- Ajax--PHP+JQuery+Ajax解析json、XML数据、加载页面
一.JQuery+Ajax用get.post方式提交和请求数据 知识要点: $('#userName').blur(function () { var txt = $(this).val(); $.a ...
- Jquery.ajax报parseerror Invalid JSON错误的原因和解决方法:不能解析
(默认: 自动判断 (xml 或 html)) 请求失败时调用时间.参数有以下三个:XMLHttpRequest 对象.错误信息.(可选)捕获的错误对象.如果发生了错误,错误信息(第二个参数)除了得到 ...
- JavaScript的原生Ajax解析
通过JavaScript的Ajax进行详细的解析过程,从而更好的了解Jquery的Ajax. 顺带,我会在后面把我整理的一整套CSS3,PHP,MYSQL的开发的笔记打包放到百度云,有需要可以直接去百 ...
- JQuery AJAX 解析获得的JSON数据
下面的解析的Json是一个二级循环. <!DOCTYPE html> <html> <head> <script src="https://code ...
- 关于ajax解析
出处:http://www.cnblogs.com/huashanlin/archive/2006/10/09/524707.html 要很好地领会Ajax技术的关键是了解超文本传输协议(HTTP), ...
- asp.net中,我们使用ashx获取数据列表,在前端使用$.ajax()解析
一直在想在asp.net中怎么才能向在java中那样用struts那样做页面请求. 当然asp.net mvc就是类似struts的东西吧,不过还没来得及学习. 今天就用ashx来接收页面请求,并调用 ...
- 使用Ajax解析数据遇到的问题
数据格式 我最近在使用JQuery的$.ajax访问后台的时候,发现竟然无法解析返回的数据,具体的错误记不清了(以后在遇到问题先截个图),可以在浏览器的Console中看到一个错误,但是去看这条请求是 ...
随机推荐
- Python timedelta模块 时间增减用法
timedalte 是datetime中的一个对象,该对象表示两个时间的差值 构造函数:datetime.timedelta(days=0, seconds=0, microseconds=0, mi ...
- RASscan
内网端口极速扫描器 软件下载地址:https://github.com/RASSec/RASscan 命令: Python Rasscan.py 网络第一个ip 网络最后一个ip
- opencv图像二值化的函数cvThreshold()。 cvAdaptiveThreshol
OpenCV中对图像进行二值化的关键函数——cvThreshold(). 函数功能:采用Canny方法对图像进行边缘检测 函数原型: void cvThreshold( const CvArr* sr ...
- NOIP2011选择客栈
n家客栈,1~n编号,每家按照某一种色调装饰,共k种,每家客栈都设有咖啡店,每家咖啡店均有各自的最低消费两位游客,要求住在颜色相同,且不是同一个客栈,在两人的客栈间选择咖啡店(包括他们住的客栈),要求 ...
- Codeforces 853C - Boredom
853C - Boredom 题意 给出一个矩阵,每行每列有且仅有一个点.每次询问一个子矩形,问这些点构成的矩形有多少个与给定的矩形相交(两个处于对角线上的点可以组成矩形). 分析 考虑矩形周围 8 ...
- ( 转 ) MySQL高级 之 explain执行计划详解
使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈. explain执行计划包含的信息 其中最重要的字段为:i ...
- 【OpenStack Cinder】Cinder安装时遇到的一些坑
最近需要安装Cinder组件,然后遇到了两个比较蛋疼的错误导致controller节点输入cinder service-list一直不能显示cinder节点上的cinder-volume服务. 错误1 ...
- jmeter 请求发送加密参数
最近在做http加密接口,请求头的uid参数及body的请求json参数都经过加密再发送请求,加密方式为:ase256.所以,jmeter发送请求前也需要对uid及json参数进行加密.我这里是让开发 ...
- 【置换群】CH Round #63 - OrzCC杯#2省选热身赛 exchange
第一问置换群裸题. 第二问单独考虑某个循环,任意交换两个元素,稍微画一下就会发现,把该循环拆成了2个,剩下所需的交换次数减少了1,也就是说,第一步我们任意交换,都能够保证交换次数最少.于是一个循环的答 ...
- 软件配置篇-MySQL下载及安装
1.进入MySQL官网下载 下载地址:https://dev.mysql.com/downloads/mysql/ 选择合适的版本下载. 2.安装MySQL 解压后文件夹一般名为:mysql-x.x. ...