EXTJS,SERVLET后台返回数据火狐无法获取,且报错:uncaught exception: [object Object]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EXTJS,SERVLET后台返回数据火狐无法获取,且报错:uncaught exception: [object Object]相关的知识,希望对你有一定的参考价值。
我通过表单形式将前IN台数据传给后台SERVLET,然后SERVLET返回数据给前台,其中通过STRING字符串,JSON数据格式,火狐都报错,uncaught exception: [object Object] ; 而IE均能通过先显示 。
部分关键代码如下:
JSP:
url:"/extjs2.1/servlet/SimpleServlet" ,
listeners:
'actioncomplete': function(form, action)alert('post success'),
'actionfailed': function(form, action)alert('post failure')
SERVLET:
response.setContentType("text/html;charset=UTF-8");
response.setHeader("Cache-Control","no-cache");
JSONObject json = new JSONObject() ;
try
JSONArray members = new JSONArray();
for(int i=0;i<2;i++)
JsonBean bean = new JsonBean() ;
bean.setAge(String.valueOf(i)) ;
bean.setName("韩美美") ;
JSONObject member = new JSONObject()
.put("name", "张小"+i)
.put("age", "28")
.put("email", "test@test.com")
.put("gf" , bean) ;
members.put(i, member);
json.put("jobs", members);
catch(Exception e)
e.printStackTrace();
System.out.println(json.toString());
response.getWriter().write(json.toString());
尝试过的反馈数据:
1: "success"
2:success:true , data:'xxx'
3:"jobs":["email":"test@test.com","age":"28","name":"张小0","email":"test@test.com","age":"28","name":"张小1"]
IE都能通过,火狐报同样的错误uncaught exception: [object Object]
ExtJs 3.4:从网格中获取所有记录并将它们传递到 servlet
【中文标题】ExtJs 3.4:从网格中获取所有记录并将它们传递到 servlet【英文标题】:ExtJs 3.4 : Get all records from a grid and pass them into a servlet 【发布时间】:2014-02-04 06:46:56 【问题描述】:我有一个网格存储,我想从该网格中获取所有记录并将它们推送到一个数组中。而且我还想将这个数据数组传递给一个 servlet 以将它们保存在数据库中。这是我的尝试。
var tourData = plannedGridStore.getRange();
var gridData = new Array();
tourData.each(function (record)
gridData.push(record.data);
);
但我的萤火虫控制台说
.each(function (record) is not a function
我正在使用 ExtJs 3.4。我的代码有什么问题?
而且我还需要知道如何将我的 gridData 数组传递给 servlet。
请帮帮我
干杯
【问题讨论】:
您在函数的最后一行缺少结束
,这是一个错字吗?
不不。我发这个问题的时候搞错了
【参考方案1】:
Ext.data.Store
getRange
方法返回记录数组。对于迭代这个数组,你可以使用Ext.each()
方法:
Ext.each(tourData, function (record)
gridData.push(record.data);
);
要将数组数据发送到服务器,您可以使用Ext.Ajax.request
方法。您不能将数组作为请求参数传递,因此首先您必须使用 Ext.util.JSON.encode()
方法将其编码为 JSON。
Ext.Ajax.request(
url: 'YOUR_URL',
params:
gridData: Ext.util.JSON.encode(gridData)
);
【讨论】:
这很好用。非常感谢。你能告诉我,我应该在我的 servlet 中接收这个 gridData 数组吗?【参考方案2】:如果你使用的是 POST,你可以做一些非常简洁的事情,比如:
Ext.Ajax.request(
url: 'url',
jsonData: Ext.pluck(store.getRange(), 'data')
);
【讨论】:
很高兴了解Ext.pluck
,它在这种情况下非常有效,谢谢!以上是关于EXTJS,SERVLET后台返回数据火狐无法获取,且报错:uncaught exception: [object Object]的主要内容,如果未能解决你的问题,请参考以下文章
ExtJs 3.4:从网格中获取所有记录并将它们传递到 servlet
extjs5 grid如何实现根据后台返回的数据 合并相应的单元格或是行数
extjs4 前台导出grid数据 生成excel,数据量大后台无法接收到数据