日期:2014-05-16  浏览次数:20377 次

Jquery Ajax在IE下的问题
function showForm_payTypeAndShipType(obj){  

  var loginflag = $("#loginflag").val();
  $.ajax({
  type:"get",
  url : "initCartNext.do?action=ajaxshowForm_pay&roid="+Math.random(),
  contentType:"application/x-www-form-urlencoded; charset=utf-8",
  data:{loginflag:loginflag}, 
  dataType:"text",
  success : function(data){
  checkSession(data);
  $("#part_payTypeAndShipType").html(data);
  },
  error :function (XMLHttpRequest, textStatus, errorThrown) {
   
  }  
  });
}
在FF以及谷歌中测试均正确 但在ie中无效果。就算是乱码也应该显示啊,但在IE里是个空值。返回的内容是一段html代码,望大神分析一下原因。

------解决方案--------------------
检查ajax页面的html标签封闭情况。是不是少写了一个</div>之类的。
------解决方案--------------------
嗯,这么看,这段代码没什么问题,应该把楼上说的问题检查一下,应该不会是
JScript code
type:"GET",

------解决方案--------------------
既然其他浏览器执行正确了,说明代码逻辑没什么问题
只是ajax请求一个字符串个嘛,这句感觉多余啊,去掉试试
contentType:"application/x-www-form-urlencoded; charset=utf-8",

------解决方案--------------------
万恶的IE.

在其他浏览器可以跑,面IE返回的是HTML说明可能是这段HTML没有写完整,在FF和谷歌中可能会忽略这样的错误,但是在IE中可能会出不来
------解决方案--------------------
IE更严格一些,F12看有啥错误提示没~
你用我这个测试试一下

JScript code

var parames={
"type1":123,"type2":123,"name":234
};
$.ajax({
url:'test.php',//改为自已的url
type:'post',
dataType:'html',
data:parames,
error: function(){alert('error');},
success:function(data){
alert(data);
}
});
/*取值的时候$_POST['type1']就行了*/

------解决方案--------------------
先监视下data是否正确返回值 。
一步步来 。