关于php:如何使用jquery ajax错误参数

How to use jquery ajax error parameter

我正在寻找一个简单的例子和/或解释如何使用.ajaxerror参数。

这个问题(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
<?php
echo json_encode($_POST);
?>


$ .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个参数:

  • XHR(请求)
  • 请求的状态
  • 抛出的错误(可以是未定义的)
  • 示例如下所示:

    1
    2
    3
    4
    5
    6
    $.ajax({
        ...
        error: function(xhr, status, error) {
            alert("oh no!");
        }
    })