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

时间: 2024-10-12 12:52:38

IE6 ajax解析parseerror的相关文章

AJAX解析

AJAX 解析 ajax在解析responseXML时,browser会将response回来的xml 解析为dom,如果发生解析错误,则xmlHttpRequest.responseXML = null; xmlHttpRequest.responseText  在 xmlHttpRequest.status = 3 时已经接受回文本了,前于responseXML xml 解析为DOM时 <?xml version="1.0" encoding="utf-8"

采用EXTJS ajax 解析返回json

片段主题:采用EXTJS ajax 解析返回json 知识分类:EXTJS 记录时间: 20150708 功能描述:点击图标根据ID ,AJAX提交后返回json 得到结果,显示图片. 学习心得:初学特别注意, 再想返回JSON 获得数据的情况下必须 使用ajax 的属性 success: function (data){} 来获取否者将只能的到返回的对象(object) ,然而并不会得到json数据(换句话说也就是得不到值). 片段代码: { iconCls : 'silk-config',

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

(默认: 自动判断 (xml 或 html)) 请求失败时调用时间.参数有以下三个:XMLHttpRequest 对象.错误信息.(可选)捕获的错误对象.如果发生了错误,错误信息(第二个参数)除了得到 null 之外,还可能是 "timeout" , "error" , "notmodified" 和 "parsererror" . error事件返回的第一个参数XMLHttpRequest有一些有用的信息: XMLHttpR

JavaScript的原生Ajax解析

通过JavaScript的Ajax进行详细的解析过程,从而更好的了解Jquery的Ajax. 顺带,我会在后面把我整理的一整套CSS3,PHP,MYSQL的开发的笔记打包放到百度云,有需要可以直接去百度云下载,这样以后你们开发就可以直接翻笔记不用百度搜那么麻烦了.  笔记链接:http://pan.baidu.com/s/1qYdQdKK 密码:pvj2   一.JavaScript原生ajax1.原生ajax代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

爬虫实战【7】Ajax解析续-今日头条图片下载

昨天我们分析了今日头条搜索得到的信息,一直对图集感兴趣的我还是选择将所有的图片下载下来. 我们继续讲一下如何通过各个图集的url得到每个图集下面的照片. 分析图集的组成 [插入图片,某个图集的页面] 我们看上面的这个图片,右面的1/5可以看出,这个图集有5张图片,在图片上右侧点击的话,会打开下一张图片. 我们来看一下这些图片的url在哪里? 分析图集的源代码 [插入图片,图集页的XHR信息] 我们先看一下XHR,返回的仍然是一些json信息,但是每个json里面的内容都不是我们需要的图片的url

原生实现ajax解析--XMLHttpRequest

ajax基础: Asynchronous JavaScript and XML,意思就是用JavaScript执行异步网络请求. 如果仔细观察一个Form的提交,你就会发现,一旦用户点击“Submit”按钮,表单开始提交,浏览器就会刷新页面,然后在新页面里告诉你操作是成功了还是失败了.如果不幸由于网络太慢或者其他原因,就会得到一个404页面.一次HTTP请求对应一个页面. 如果要让用户留在当前页面中,同时发出新的HTTP请求,就必须用JavaScript发送这个新请求,接收到数据后,再用Java

Jquery $.ajax 解析json

[ { "Type": "CangChu", "tm": "13℃", "hm": "70%", "im": "0lux", "ps": "1000hPa", "co2": "824ppm" } ] 接口返回的数据 $.ajax({ type: "post&q

Ajax解析JSON

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><h

ajax解析json值

$.ajax({ async: true, type: "post", url: "${ctxPath!}/pc/xxx/json?id=" + id, dataType: "json", success: function (data) { $("#shi").empty(); $.each(data.listcity, function (i, item) { var text = "<li onclick