`

ajaxSubmit请求状态200,但执行的结果是error而不是success

    博客分类:
  • js
 
阅读更多

原文出处:http://hi.baidu.com/zwfec/item/bcb2ebe9053034c3baf37d42

昨天与一个奇怪的问题碰面, 就是ajaxSubmit请求状态200,但执行的结果是error而不是success?

在网上找了下原因,因为返回是正确的所以很是无从下手.

如下例子:

$('#intput_img').change(function(){

        $('#formid').ajaxSubmit({   

                   dataType: 'json',

                   type: 'POST',

                   success: function(r) {
                               alert('success');
                   },
                   error:function(){
                              alert('error');
                    }
        });      return false;                   // 注意此处,如果不写此返回的话,页面就不是异步提交的 !

});

返回数据总是在 error 里执行,

在网上找了找相关资料,可能以下两种原因导致此种情况:

1. 返回的数据不是你定义的类型,即如果你定义的 dataType 是 json 类型的,那么返回来的数据一定是 json 才可以,不然就会执行 error 里的程序块儿。

2.原因是ajax请求跨域了,解决方法是在两个文件里都添加一段 js: document.domain

 

我遇到的就是第一种情况,返回的数据没用 json 的格式,而是输出的 serialize 的串,看起来似乎是正确,可是,错了

 

 

然而以上问题仍没解决我的错误:

先上代码:

var options = {
  dataType:"json",
  type:'post',
  url:'servlet/EnterpriseServiceServlet?method=add',
  beforeSubmit:showRequest, 
        success:showResponse,
        error :showError,
        clearForm:true
    };
 $("#winForm").ajaxSubmit(options);

改为:

 dataType:'json',

原来不支持""

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics