How to use jquery ajax error parameter
我正在寻找一个简单的例子和/或解释如何使用
这个问题(jQuery ajax错误函数)指向这个我不明白的jQuery文档(http://api.jquery.com/jQuery.ajax/)。
我有以下代码不起作用,我无法弄清楚为什么。 我希望error参数会有所帮助:
jQuery的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | // wait for the DOM to be loaded $(document).ready(function() { // bind 'myForm' and provide a simple callback function $("#myForm").submit(function(){ var user_input = $("#signup_id_email").val(); $.ajax ({ type:"POST", url:"ajax_test.php", dataType: 'json', data: {email: user_input}, **error:""** }) .done(function(r) { $("#answer_id").append(r.email); }); }); }); |
PHP(ajax_text.php)
1 2 3 |
$ .ajax参数对象的错误"property"用于提供称为$ .ajax方法的闭包的回调函数。换句话说,如果在ajax请求期间发生错误,则需要提供匿名函数来处理错误。这是一个基本的例子。
1 2 3 4 5 6 7 8 9 10 11 12 13 | $.ajax({ type:"POST", url:"ajax_test.php", dataType: 'application/json', data: {email: user_input}, success: function(result) { // You can use success instead of .done }, error: function(requestObject, error, errorThrown) { alert(error); alert(errorThrown); } }); |
请记住,只有在请求实际出错时才会调用错误回调函数。如果您的代码根本不返回任何内容,但请求仍返回200状态,则您必须在成功回调函数中处理该异常。
希望这可以帮助。
编辑:请注意我删除了链接事件的使用,现在所有回调函数都在传递给$ .ajax的原始参数对象内处理。
我怀疑你甚至发送了一个请求。你的空白是关闭的。
Javascript在语句结尾处不需要分号。因此,它有时会将它们推断到您不想要的地方。
尝试将'({'与'$ .ajax'放在同一行。你没有看到错误,因为没有。$ .ajax是一个有效的语句,即使它什么都不做。同样,您在括号内创建的对象是一个有效的对象,即使它也没有做任何事情。
1 2 3 4 5 6 | $.ajax({ type:"POST", ... }).done(function(r) { .... }); |
要回答原始问题,错误会将函数作为参数。此函数按此顺序采用3个参数:
示例如下所示:
1 2 3 4 5 6 | $.ajax({ ... error: function(xhr, status, error) { alert("oh no!"); } }) |