jquery ajax总是返回成功 但实际上是不成功的(火狐 谷歌)

<script src="http://code.jquery.com/jquery-1.4.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
$("#approve").click(function(){
//alert($(":checkbox[name=arcsel]:checked").length);
//return false;
var arcs=new Array();
$(":checkbox[name=arcsel]:checked").each(function(){
arcs.push($(this).val());
})
$.ajax({
type:"post",
url:"啊啊啊",
data:"{}",
success:function(data){
alert("操作成功");
alert(data);
},
error:function(){
alert("操作失败");
}
})
})
})
</script>

比如这段代码,在火狐和谷歌浏览器下,url完全是错的,但是返回success的结果。无论怎么写都返回成功,IE和opera是正常的. 吧代码改成对的,IE和opera返回success并执行必要的操作,火狐和谷歌同样返回success但没有执行任何给定的操作。

  尊敬的用户,您好!很高兴为您答疑
  $.ajax({type:"post",url:"啊啊啊",data:"{}",success:function(data){alert("操作成功");alert(data);},error:function(){alert("操作失败");}})})})
  您的这段代码其实是在请求当前页面,而且您的这种定义,永远无法走到error。
  至于构造的传参data:"{}",您这是在发送字符{},本身不具有任何意义,如果您是要包装结构化数据,正确的写法应该是data:{cname1:value1,cname2:value2}形式。请您仔细阅读学习W3C的ajax方法的用法。
  希望我的回答对您有所帮助,如有疑问,欢迎继续咨询我们。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-28

1,data,格式错误,去学习什么是json

2,error: 是服务器返回状态码除了400以外的情况,才触发,也就是服务器端异常终止执行,报黄页了,而不是你所认为的“操作失败”,去学习ajax的服务器端返回状态,(有精力再学习一下ajax自身状态码,这些都是ajax的基础知识)

你要想处理失败,就在

success: function(data){  
    if(data==success){处理操作成功}
    else if(data==failure){处理操作失败}
},
error: function(){
    //服务器异常
}

第2个回答  2013-06-27
不要怀疑浏览器,一定是你自己的问题……
第3个回答  2013-06-27
$.ajax({
      type:"post",
      url:"",
      data:"",
      success:function(data){
       alert("操作成功");
      },
      error:function(){
       alert("操作失败");
      }
})

拿着这样的写法再试。


在火狐和谷歌浏览器下,url完全是错的,但是返回success的结果。  ——这样的结果才是对的

不理解url:"啊啊啊",  这样你是要做什么,这里错误url默认为当前页面,然后返回的结果默认为当前页面,so 火狐和谷歌没错的。


至于:IE和opera是正常的.  —— 楼主你错了,他们两个才不是玩意。


他们只是不认识 你的 data:"{}",  无法执行,而已。

相似回答