原文出处: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',
原来不支持""