1

$.ajax 有两个返回值:成功和错误。
如果 $.ajax 调用一个 php 模块,如何将响应发送到成功和错误?
例如:
如果这行代码返回错误:

$connection = mysql_connect($server,$user,$password);  

如果 php 模块的执行正确,我想在 ajax-error 中收到错误,
然后我想在 ajax-sucess 中收到一条消息
如果我从 PHP 发送 echo "message" 我总是在 ajax-success 中收到消息我有义务测试什么是成功,什么不是!

4

3 回答 3

2

来自jQuery ajax 文档

error(jqXHR, textStatus, errorThrown)请求失败
时调用的函数。...

在服务器端,请求已经成功。通常,结果回调将是成功处理程序,而不是错误处理程序。

您应该在 ajax-success 处理程序中处理 mysql_connect 错误。

于 2012-04-22T13:20:52.920 回答
0

我认为只有当ajax调用不起作用时,ajax 错误回调才会返回错误,而不是在你的(成功'ajaxed')脚本中的某些东西(如你的情况下的 sql 命令)不起作用的情况下。

但是,要处理来自 ajax 成功回调函数中数据的 sql 错误,您可以解析返回的数据。我的意思是你可以在你的脚本输出中创建一个 id='sql_error' 的 div,然后读取这个 div 的内容。如果没有 sql 错误,那么您的错误 div 的内容必须为零。

像这样的东西,也许(未经测试):

$.get(url, function (data) {
    var sql_error = $("#sql_error", data).html(); 
    // or var content = $("#error", $(data)).html();

    // you can then show output in the way you want, depending on sql_error
});
于 2012-04-22T13:22:54.023 回答
0

试试这个....(经过测试)。在服务器端错误的条件中使用它。

header('403 Forbidden', true, 403);
die('forbiden to log in. No authorization');

这将唤起错误函数。根据您的需要放置状态代码和消息。

于 2012-04-23T06:05:06.863 回答