jqGrid:显示服务器错误消息

时间:2013-06-28 15:53:02

标签: jqgrid

我有一个包含日期字段的jqGrid编辑表单。我想实现异常处理,以便来自服务器的错误消息将显示在编辑表单中。回复示例:

HTTP/1.1 400 Bad Request
Server: Apache-Coyote/1.1
Date: Fri, 28 Jun 2013 15:47:21 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: close

11
"Bad Date format"
0

jqGrid仅在表单顶部显示“错误状态:'错误请求'错误代码:400”。我怎么能让它也显示错误信息:“错误的日期格式”?

2 个答案:

答案 0 :(得分:2)

您应该使用表单编辑的errorTextFormat回调。作为参数,回调得到jqXHR对象,它是XMLHTTPRequest对象的包装器。它的responseText属性表示响应的主体(在您的情况下为11\n"Bad Date format"\n0)。 status属性为您提供HTTP状态代码(示例中为400)。您可以使用getResponseHeadergetAllResponseHeaders来检查所有HTTP headers

顺便说一下,我发现响应包含Content-Type: application/json非常奇怪,但响应的主体不包含JSON字符串。

答案 1 :(得分:1)

假设您的回复包含2个字段:status(OK,ERROR,..)和消息,那么您应该编写如下函数:

    validateAfterSubmit = function(response, postdata){
        var json   = response.responseText; // response text is returned from server.
        var result = JSON.parse(json); // convert json object into javascript object.
        return [result.status == 'OK', result.message, null];
    };

并在编辑/添加选项中指定:

            //edit options
            { url: '...',
                afterSubmit: validateAfterSubmit
            },
            //add options
            { url: '...',
                afterSubmit: validateAfterSubmit
            },
希望这可以帮助