Roy*_*ari 53 javascript jquery
我有一个简单的Web应用程序.我已经创建了服务器REST API,因此它将返回带有HTTP代码的响应和带有更多详细信息的JSON(或XML)对象:应用程序代码(特定于场景,描述发生了什么的消息等).
因此,例如,如果客户端发送注册请求且密码太短,则响应HTTP代码将为400(错误请求),响应数据将为:{appCode : 1020 , message : "Password is too short"}
.
在jQuery中,我使用"ajax"函数来创建POST请求.当服务器返回与HTTP代码200(OK)不同的内容时,jQuery将其定义为"错误".
错误处理程序可以获得3个参数:jqXHR,textStatus,errorThrown.我可以在错误的情况下获取服务器发送的JSON对象吗?
编辑:
1)这是我的JS代码:
function register (userName, password) {
var postData = {};
postData["userName"] = userName;
postData["password"] = password;
$.ajax ({
dataType: "json",
type: "POST",
url: "<server>/rest/register",
data: postData,
success: function(data) {
showResultSucceed(data);
hideWaitingDone();
},
error: function (jqXHR, textStatus, errorThrown) {
showResultFailed(jqXHR.responseText);
hideWaitingFail();
}
})
}
Run Code Online (Sandbox Code Playgroud)
2)在查看Firebug控制台时,响应似乎是空的.当使用REST测试工具调用相同的请求时,我得到了一个带有JSON对象的响应.
我究竟做错了什么?
mpe*_*pen 46
以下是如何获取有关错误的JSON数据的示例:
$.ajax({
url: '/path/to/script.php',
data: {'my':'data'},
type: 'POST'
}).fail(function($xhr) {
var data = $xhr.responseJSON;
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
来自文档:
如果指定了json,则在作为对象传递给成功处理程序之前,使用jQuery.parseJSON解析响应.解析的JSON对象通过jqXHR对象的responseJSON属性提供.
否则,如果responseJSON
没有,您可以尝试$.parseJSON($xhr.responseText)
.
归档时间: |
|
查看次数: |
67272 次 |
最近记录: |