Jquery/php 输出自定义错误消息
Jquery/php output custom error messagge
我在表单的输入字段上有一个Ajax自动完成框。在jquery中,我有以下ajax设置
$.ajax({
type: "POST",
url: myUrl,
data: $("#id__form").serialize(),
success: function(data){
alert("do something");
},
error: function (xhr, textStatus, thrownError) {
alert(xhr.status+ " "+ thrownError+ " " + textStatus);
},
dataType: "json"
});
在服务器端,我有这个php代码
$data = array('type' => 'error', 'message' => 'Error: '.$text);
header('HTTP/1.1 400 Bad Request');
header('Content-Type: application/json; charset=UTF-8');
die(json_encode($data));
无论是成功还是错误,一切正常。但是,我没有弄清楚如何从jquery访问我在php中定义的文本$text
xhr.status 是 400,textStatus 是"error",thrownError 是"错误请求",但没有迹象表明我定义为$text
我错过了什么?
如果你回
显文件中的$text变量,你可以从你的javascript文件访问它。
PHP代码:
echo $text;
更改为 JavaScript:
$.ajax({
type: "POST",
url: myUrl,
data: $("#id__form").serialize(),
success: function(data){
//do something with the data returned from php file
alert(data);//<---change to javascript code
},
error: function (xhr, textStatus, thrownError) {
alert(xhr.status+ " "+ thrownError+ " " + textStatus);
},
dataType: "json"
});
在你的ajax帖子中,你定义了一个json调用。在 php 后端中,您定义了一个数组,因此您可以通过键访问这些参数。您的阵列:
<?php
$arr = array();
$arr['message'] = 'What you like?';
$arr['errorCode'] = '12345';
die(json_encode($arr));
?>
在您的情况下,您可以通过添加键来访问数据参数,例如 data.message:
成功: function(data){ alert(data.message); }
所以,它必须看起来像这样:
$.ajax({
type: "POST",
url: myUrl,
data: $("#id__form").serialize(),
success: function(data){
alert(data.message+' '+data.errorCode);
$('#someDivTag').html(data.message);
},
dataType: "json"
});
知道了
,感谢这篇文章 http://wingkaiwan.com/2012/10/21/deserialize-error-in-json-for-jquery-ajax/
问题是成功回调中的变量数据会自动处理 json,但我必须在错误回调中解析它。这有效:
error: function (xhr, ajaxOptions, thrownError) {
var error = JSON.parse(xhr.responseText);
alert(error.message);
}
相关文章:
- jQuery在输入下验证post错误消息
- 在AngularJs中隐藏默认错误消息
- 如果用户输入的长度小于最小长度,则显示错误消息
- 使用ASP.NET CustomValidator避免重复的错误消息
- KOValidation在错误消息中获取可观察值、$index()、$data等
- 更改精细上载中的错误消息
- 如何在页面刷新时隐藏错误消息
- 如何显示错误消息
- 滑块未显示,控制台中没有错误消息
- 表单提交没有'如果为空,则不会显示错误消息
- 为什么我的Alexa技能测试显示正确的lambda输出,但在开发人员控制台中测试时却给出错误消息
- 隐藏错误消息“;未选择文件”;asp:fileUpload的文本
- 登录时显示自定义错误消息
- 如何仅在存在最小值和最大值时才显示错误消息
- 通过 AJAX 检索 Blob 时处理错误消息
- Javascript 错误:消息:预期的“)”
- 如何将错误消息从 meteor 服务器传递到客户端
- 为什么 Angularjs 总是显示错误消息
- 我如何让我的 var 错误消息输出是使用字段还是字段,具体取决于留空的字段数
- 将错误消息 JSON 传递到另一个页面模板