2012-03-15 68 views
0
$.ajax({ 
type: "POST", 
url: "/zzz/bbb/abcd.aspx?deleteIDs=" + request_ids, 
contentType: "application/x-www-form-urlencoded", 
data: '', 
dataType: "html", 
complete: function(xhr, status) { 

    if (status == "success") 
    { 
    } 
    else { 
    } 
} 

无论后台操作的结果如何,上面的jquery代码的status =“success”。我究竟做错了什么?jquery ajax在发布到aspx页面时没有发现错误

回答

1

“成功”只是指来自服务器的响应。如果服务器响应是200响应,则无论服务器端的业务逻辑是否遇到问题,都将被视为成功。

您可以从服务器返回400或500错误代码,或者最好将响应发送回包含任何错误消息的JS。

例如,我通常期望来自服务器的JSON响应。如果服务器端出现错误,它将包含一个错误:true标志,并在JS中处理它。因此,一个典型的无差错的反应是:

{error:false, html:"My HTML in here"} 

在服务器上的错误将返回:

{error:true, errorMsg: "My error message here"} 

编辑来举个例子:

期待的JSON响应正如上文所述,我可以做这样的事情:

$.ajax({ 
    url: 'test.json', 
    dataType: 'json', 
    success: function(data) { 
     if (data.error) { alert(data.errorMsg); } 
     else { 
      //do something with data.html 
     } 
    } 
}); 
+0

我明白你在说什么。那么我是否应该通过响应主体进行解析并查找一些可以从asp.net应用程序发送的自定义消息? – developer747 2012-03-15 21:06:18

+0

我编辑了我的答案以上给出一个例子。 – Steve 2012-03-15 21:16:14

+0

@ developer747,史蒂夫的回答是绝对正确的。根据ajax端点的设计方式,从成功函数的参数返回的数据可能会有很大差异。你也应该从console.log开始,看看你的响应参数,看看里面到底是什么。一旦你确定知道,你可以解析它并开始通过命名空间和属性迭代它。 – Kristian 2012-03-15 21:27:45

1

如果该代码正是您正在使用的代码,则url字段中会出现错误:您用双引号打开该行,并用单引号结束。

+0

对不起,我已经编辑的网址,然后发布在这里。修正了报价错误。 – developer747 2012-03-15 21:00:31