1

我有一个包含日期字段的 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 仅在表单顶部显示“错误状态:'Bad Request' 错误代码:400”。我怎样才能让它也显示错误消息:“错误的日期格式”?

4

2 回答 2

2

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

顺便说一句,我发现响应包含很奇怪,Content-Type: application/json但响应的正文不包含 JSON 字符串。

于 2013-06-29T12:25:43.423 回答
1

假设您的响应包含 2 个字段:状态(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
            },

希望这可以帮助

于 2013-12-17T14:09:43.607 回答