【问题标题】:ExtJS Ajax request failed with JSON DataExtJS Ajax 请求因 JSON 数据而失败
【发布时间】:2014-01-13 04:31:49
【问题描述】:

我正在使用 extjs ajax 将修改后的记录发送到 java side rest 服务,这里是代码..

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 数据。

谢谢,

【问题讨论】:

标签: java ajax json extjs


【解决方案1】:

您是否要发送两次数据?在您的请求中有jsonData

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

又一次在

jsonData : jsonData

也许尝试删除其中一个。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 2011-07-03
      • 1970-01-01
      • 2016-12-25
      • 1970-01-01
      相关资源
      最近更新 更多