我有一个简单的Javascript功能:
function checkParams()
{
$.ajax(
{
url: 'login.php',
type: "GET",
contentType: false,
cache: false,
processData: false,
async: true,
data:
{
user: $("#user").val(),
pass: $("#pass").val()
},
success: function(data)
{
$("#mydiv").load("loader.php");
},
error: function()
{
$("#mydiv").load("index.php");
}
});
}
一个简单的PHP函数,用于检查正确的用户& 传递字符串,如果出现故障,我应该返回错误条件。
我找到了一些建议,例如:
function foo()
{
/* code ... */
/*error condition */
echo "error";
}
但说实话,它不起作用..
如何从PHP中告诉ajax我希望ro返回错误条件' ?
答案 0 :(得分:3)
jQuery.ajax()错误处理程序仅在HTTP状态结果指示错误时触发;也就是说,页面返回4xx或5xx状态代码。
您可以执行以下两个选项之一:
1)在回显"错误"之前,用header('HTTP/1.0 400 Bad Request')
(或任何其他相关的HTTP状态代码)设置状态代码。
2)不是使用错误状态,而是让您的成功和失败条件都发出一个数组,转换为json_encode()
的JSON,然后在您的javascript中解码并在适当时处理成功或失败你的成功功能。
答案 1 :(得分:0)
在这段代码中改为RETURN SOMETHING
success: function(data)
{
return true;
},
error: function()
{
return false;
}
基本上 $ result =你的ajax回归;
if ($result)
{
header('Content-Type: application/json');
}
else
{
header('HTTP/1.1 500 Internal Server Yourserver');
header('Content-Type: application/json; charset=UTF-8');
die(json_encode(array('message' => 'ERROR', 'code' => 'whatever you want to call it')));
}