使用JSON Data,ExtJS Ajax请求失败

时间:2014-01-13 04:31:49

标签: java ajax json extjs

我使用extjs ajax向java端休息服务发送修改记录,这是代码..

Ext.Ajax.request( {
                        url : saveUrl,
                        params: {unitMonthList: Ext.JSON.encode(jsonData)},
                        method : "POST",
                        isUpload : true,
                        timeout: 300000,
                        jsonData : jsonData,
                        success : function(resp, opts) {
                            var value = resp.responseText;
                            var result = JSON.parse(value);
                            Ext.MessageBox.hide();
                            if(result.success){
                                    var umCostStore = Ext.data.StoreManager.lookup('Unitmonths');
                                    umCostStore.commitChanges();
                                    Ext.MessageBox.hide();
                                    Ext.Msg.show({
                                        title : 'Notification',
                                        msg : 'Data saved successfully!',
                                        buttons : 1,                                
                                        cls : 'msgBtnCls'
                                    });
                            }
                        },
                        failure : function(resp, opts) {
                            Ext.MessageBox.hide();
                            Ext.Msg.show({
                                title : 'Notification',
                                msg : 'Error occurred. Please try again later..',
                                buttons : 1,                                
                                cls : 'msgBtnCls'
                            });
                        }
                    });




@POST
@Path("saveUnitMonths")
@Produces("application/json")
public String saveUnitMonths(@Context HttpServletRequest request,
        @Context ServletContext servletContext) throws ParseException {
    Gson gson = new Gson();
    String unitMonthList = request.getParameter("unitMonthList");

    }

上面的代码最多可以处理5条记录,但是对于5条以上的记录,ajax请求失败了,给出了500条错误代码并执行了故障回调函数。 它根本不是服务器端。 请帮助我了解超过5条记录的错误。 如果我删除Ext.JSON.encode(jsonData)并直接使用jsonData然后Ajax调用服务器端超过5条记录,但我无法处理服务器端的非JSON数据。

谢谢,

2 个答案:

答案 0 :(得分:0)

您是否两次发送数据?在您的请求中,

中有jsonData
params: {unitMonthList: Ext.JSON.encode(jsonData)},

再一次在

jsonData : jsonData

也许尝试删除其中一个。

答案 1 :(得分:0)

我已经通过删除 Ext.JSON.encode(jsonData)解决了这个问题。 Ext.JSON.encode()函数如何编码记录超过5,所以我只是将 jsonData:jsonData 作为数组发送到服务器而不进行编码。