$ .ajax从PHP文件中获取返回值

时间:2013-01-02 23:35:12

标签: php jquery ajax function return-value

这里我有jQuery ajax调用SOMETIMES执行的.php文件让我们说以下

echo "hello"

这是:

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

        }
    });

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

更好地解释: 当请求无法完成时我会收到错误,并且可能会成功。但是我希望得到这个PHP文件的返回值。如果它返回1,我想做点什么。如果它返回2,相反,我想做别的事情。希望我能更好地解释一下......

提前致谢。

4 个答案:

答案 0 :(得分:4)

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

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');
    }
  }
});

答案 1 :(得分:1)

根据你的问题,make php返回1或返回2.你可以在失败时返回1,在成功时返回0(null)。然后你可以为你的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

                        }
                    });

答案 2 :(得分:0)

$.ajax({
    type: "POST",
    url: myurl.php
    data: data_string,
    timeout: 6000,
    success: function (msg) {
       if (msg != "Hi")
       {
          //TODO
       } else
       {
          //TODO
       }
    }
});

答案 3 :(得分:0)

您可以使用错误回调:

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

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

此外,还有其他回调机会,您可以在$.ajax documentation page查看。

如果您要从PHP“说”出现错误,可以通过以下两种方式完成:

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

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

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