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的更多相关文章

  1. jQuery ajax解析xml文件demo

    解析xml文件,然后将城市列表还原到下拉列表框中:当选择下拉列表框时,在对应的文本框中显示该城市信息. 前端代码: <!doctype html> <html> <hea ...

  2. 使用js接收ajax解析的json再拼成一个自己想要的json

    //ajax解析的json{ "status": 1, "content": { "pathsInfo": [ { "id&quo ...

  3. Ajax--PHP+JQuery+Ajax解析json、XML数据、加载页面

    一.JQuery+Ajax用get.post方式提交和请求数据 知识要点: $('#userName').blur(function () { var txt = $(this).val(); $.a ...

  4. Jquery.ajax报parseerror Invalid JSON错误的原因和解决方法:不能解析

    (默认: 自动判断 (xml 或 html)) 请求失败时调用时间.参数有以下三个:XMLHttpRequest 对象.错误信息.(可选)捕获的错误对象.如果发生了错误,错误信息(第二个参数)除了得到 ...

  5. JavaScript的原生Ajax解析

    通过JavaScript的Ajax进行详细的解析过程,从而更好的了解Jquery的Ajax. 顺带,我会在后面把我整理的一整套CSS3,PHP,MYSQL的开发的笔记打包放到百度云,有需要可以直接去百 ...

  6. JQuery AJAX 解析获得的JSON数据

    下面的解析的Json是一个二级循环. <!DOCTYPE html> <html> <head> <script src="https://code ...

  7. 关于ajax解析

    出处:http://www.cnblogs.com/huashanlin/archive/2006/10/09/524707.html 要很好地领会Ajax技术的关键是了解超文本传输协议(HTTP), ...

  8. asp.net中,我们使用ashx获取数据列表,在前端使用$.ajax()解析

    一直在想在asp.net中怎么才能向在java中那样用struts那样做页面请求. 当然asp.net mvc就是类似struts的东西吧,不过还没来得及学习. 今天就用ashx来接收页面请求,并调用 ...

  9. 使用Ajax解析数据遇到的问题

    数据格式 我最近在使用JQuery的$.ajax访问后台的时候,发现竟然无法解析返回的数据,具体的错误记不清了(以后在遇到问题先截个图),可以在浏览器的Console中看到一个错误,但是去看这条请求是 ...

随机推荐

  1. WordPress 数据库操作WPDB对象($wpdb)用法详解【转载】

    使用wordpress的时候,如果想直接使用WP里封装的数据库操作的类(wp-db.php),将wp-blog-header.php包含到代码中就可以使用了. define(‘PATH’, dirna ...

  2. boost::operators

    boost 的 operators 提供了comparison operators.arithmetic operators.operators for iterators 操作.虽然使用 C++ 的 ...

  3. Eclipse导入idea 项目

    学校做的项目老师会导入到Eclipse下查看. 使用idea做的项目直接导入eclipse会发生问题(file-Export to Eclipse) 让Eclipse兼容idea项目,或者直接导入id ...

  4. Codeforces 716 E Digit Tree

    E. Digit Tree time limit per test 3 seconds memory limit per test 256 megabytes input standard input ...

  5. [xsy2369]取名字

    真是道挺好的题,做一道题学了挺多东西 从操作入手比较困难,所以对硬币进行讨论 考虑一个硬币$(A,B)$,假设$A\lt B$,那么我们可以把操作分成三类 第一类$T_j\lt A$,这种操作是没用的 ...

  6. 【kd-tree】CDOJ - 1170 - 红与蓝

    kd-tree模板题,对红点建立kd-tree,用每个蓝点查询,更新最小值即可. #include<cstdio> #include<cmath> #include<al ...

  7. 【数论】【快速幂】bzoj1008 [HNOI2008]越狱

    根据 高中的数学知识 即可推出 ans=m^n-m*(m-1)^(n-1) .快速幂取模搞一下即可. #include<cstdio> using namespace std; typed ...

  8. 【bzoj1370】【团伙】原来并查集还能这么用?!

    (画师当然是武内崇啦) Description 在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足: 1. 我朋友的朋友是我的朋友: 2. 我敌人的敌人是我的朋友: 所有是朋友的人组成一 ...

  9. 10.1(java学习笔记)JDBC基本操作(连接,执行SQL语句,获取结果集)

    一.JDBC JDBC的全称是java database connection java数据库连接. 在java中需要对数据库进行一系列的操作,这时就需要使用JDBC. sun公司制定了关于数据库操作 ...

  10. [Android Studio Problems]记录克隆项目中遇到的坑(问题)以及解决方法

    ①Migrate project to Gradle? 问题描述: This project does not use the Gradle build system. We recommend th ...