jQuery Ajax-如何获取错误的响应数据

罗伊(Roy Tsabari):

我有一个简单的Web应用程序。我已经创建了服务器REST API,因此它将返回带有HTTP代码和JSON(或XML)对象的响应,其中包含更多详细信息:应用程序代码(特定于方案,描述发生了什么情况的消息等)。

因此,例如,如果客户端发送注册请求且密码太短,则响应HTTP代码将为400(错误请求),而响应数据将为:{appCode : 1020 , message : "Password is too short"}

在jQuery中,我使用“ ajax”函数创建POST请求。当服务器返回的内容不同于HTTP代码200(确定)时,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();
        }
    })
}

2)在查看Firebug控制台时,响应似乎为空。当使用REST测试工具调用相同的请求时,我得到一个带有JSON对象的响应。

我究竟做错了什么?

罗伊(Roy Tsabari):

在解决这个问题上花了很多时间后,我发现了问题。

该页面在URL下:www.mydomain.com/register
REST api在URL下:server.mydomain.com/rest

似乎这种POST并不是那么简单。
我将搜索更多信息以更好地理解此问题(如果您有更多信息,请与我分享)。

将REST API放在www.mydomain.com/rest下时-一切正常。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章