如果失败,代码的执行路径通常如下:
error: function(msg)
msg
来自哪里?
编辑:
我正在使用这个函数($ajax)调用一个WEB服务。如果投票反对的人能够解释一下msg来自哪里,那就太好了!我是在web服务中设置它吗?如果是这样,怎么设置?请不要复制粘贴定义。
如果失败,代码的执行路径通常如下:
error: function(msg)
msg
来自哪里?
编辑:
我正在使用这个函数($ajax)调用一个WEB服务。如果投票反对的人能够解释一下msg来自哪里,那就太好了!我是在web服务中设置它吗?如果是这样,怎么设置?请不要复制粘贴定义。
根据jQuery文档:
error(XMLHttpRequest, textStatus, errorThrown) 函数
如果请求失败,将调用此函数。该函数传递三个参数:
- XMLHttpRequest对象
- 描述发生错误类型的字符串
- 可选的异常对象(如果有)。
第二个参数的可能值(除了null)是“timeout”,“error”,“notmodified”和“parsererror”。这是一个Ajax事件。
当您指定一个参数时,它将是xmlHttpRequestObject
。您可以从中获取一些有用的信息。不幸的是,大多数文档都没有正确设置此项。一个好的默认模板是:
error:function (xhRequest, errorText, thrownError)
xhRequest能提供的一些有用信息包括:
.status
:404:"未找到",500:"服务器错误"。这有时可能非常有帮助。.responseText
是来自服务器的信息,在发生错误时通常无用,但有时可能有帮助。第二个值是一个字符串,有时很有用。嗯,我猜在文档中可能会提到可能的取值。
每当我检查第三个参数时,它总是未定义的。我认为它从未有过用处。
error(XMLHttpRequest, textStatus, errorThrown)
该内容需要翻译的是关于it技术的,即从服务器发送文本错误信息。
因此,如果在服务器上设置:
Response.Status = 403;
Response.StatusDescription = "Password is not correct";
在客户端上,您会得到:
textStatus => "error",
errorThrown => "Password is not correct"
Asp.net MVC的服务器部分将会是:
return new HttpStatusCodeResult(403, "Password is not correct");
这条消息是从您在ajax调用中查询的实际服务器端函数返回的。
这样,您就可以获取错误或任何其他信息,以了解服务器端代码是否按照预期执行。
比如,如果您返回一个字符串"success"
msg.val()
将等于 "success"。
希望这可以帮到您。
error: function(req, status, error) {
}
来自jQuery API:
如果请求失败,则调用的函数。该函数传递三个参数:XMLHttpRequest对象,描述发生错误类型的字符串和一个可选的异常对象(如果有)。第二个参数的可能值(除了null)是“timeout”,“error”,“notmodified”和“parsererror”。这是一个Ajax事件。
AJAX 返回变量(在本例中为“msg”)是从 AJAX 调用返回的输出 - 在 AJAX 错误的情况下,这很可能是服务器错误。