1

在这里,我有 jQuery ajax 调用有时会执行的 .php 文件让我们说以下内容

echo "hello"

这里是:

    $.ajax({
        type: "POST",
        url: myurl.php
        data: data_string,
        timeout: 6000,
        success: function () {

        }
    });

我想知道:当在 PHP 文件中执行类似前面的 echo 时,是否可以让 ajax 返回 ERROR 而不是 SUCCESS?我的意思是,检查这个 $.ajax 中的 php 文件是否按照我的意愿执行。

更好地解释: 当请求无法完成时我得到错误,而当它可以时成功。但我想从这个 PHP 文件中得到一个返回值。如果它返回 1,我想做点什么。相反,如果它返回 2,我想做其他事情。希望我解释得更好..

提前致谢。

4

4 回答 4

4

我建议json_encode()在您的 PHP 文件中使用。例如:

echo json_encode(array('success' => 'do_foo'));
exit();

然后您可以在成功回调中添加条件:

$.ajax({
  type: "POST",
  url: myurl.php
  data: data_string,
  dataType: "JSON", //tell jQuery to expect JSON encoded response
  timeout: 6000,
  success: function (response) {
    if (response.success === 'hello'){
      console.log(response);
    } else {
      console.log('else');
    }
  }
});
于 2013-01-02T23:52:35.733 回答
1

根据您的问题,使 php 返回 1 或返回 2。您可以使其在失败时返回 1,在成功时返回 0(为空)。然后您可以为您的 ajax 返回执行此操作。

$.ajax({
                type: "POST",
                url: "YOUR URL",
                data: dataString,
                success: function(server_response)
                    {
                        if(server_response == 1)
                        {
                            alert("You have made a mistake");
                            return true;
                        }

                        HERE YOU WILL PUT WHAT HAPPENS ON SUCCESS

                        }
                    });
于 2013-01-03T00:06:45.307 回答
0
$.ajax({
    type: "POST",
    url: myurl.php
    data: data_string,
    timeout: 6000,
    success: function (msg) {
       if (msg != "Hi")
       {
          //TODO
       } else
       {
          //TODO
       }
    }
});
于 2013-01-02T23:43:46.830 回答
0

您可以为此使用错误回调:

$.ajax({
    type: "POST",
    url: myurl.php
    data: data_string,
    timeout: 6000,
    success: function () {

    },
    error: function() {
        /* Code reacting to error here */
    }
});

此外,还有其他回调机会,您可以在$.ajax 文档页面查看

如果您要从 PHP 中“说”有错误,可以通过 2 种方式完成:

您可以在 PHP 中打印一个表示错误的关键字,然后在您的成功函数中检查它:

success: function (data) {
    if (data == 'error') {
    } else {
    }
}

或者,另一种方式,您可以提供 PHP 正确的标头以导致“错误”。然后你可以像往常一样使用错误回调。我会选择这种方式。

于 2013-01-02T23:44:49.690 回答