如果用户没有正确填写表单,我想通过ajax向他发送一个错误。
这就是我通过ajax将答案发送到浏览器的方式:
if($bo){
header('HTTP/1.1 400 Bad Request');
header('Content-Type: application/json; charset=UTF-8');
$error['message'] = 'Some error message';
echo json_encode($error);
die;
}
这是我的jquery脚本:
$.ajax(
{
url: formURL,
type: "POST",
data: postData,
success: function(data, textStatus, jqXHR)
{
// some code ...
},
error: function(data, jqXHR, textStatus, errorThrown)
{
// how to get message here json{"message":"some_message"}
var jsonObj = JSON.parse(data);
$r = jsonObj.message;
alert($r);
}
});
我可以使用firebug控制台看到消息,但我不知道如何获得包含我的错误的变量:/
有什么建议吗?
感谢
首先,我建议使用return
而不是echo & die
。它更整洁,给人以封闭感。
第二,不需要用javascript解析json,它就像巧克力一样,它只需要理解。只需在ajax输入对象中使用accept: application/json
或jsonp
,然后使用data.message
。
这两个技巧结合起来应该能解决你的问题。
谢谢大家。
我想我已经找到了解决办法。访问消息值:
error: function(data, jqXHR, textStatus, errorThrown)
{
console.log(data.responseJSON.message);
}