关于火狐下SyntaxError: missing ] after element list

baobao28 2013-11-12 04:15:54
我写了个火狐调用ajax返回json的方法,每次都是在执行到代码var json = eval("("+data+")");的是时候抛出如下的错误,但是在ie下正常
POST http://127.0.0.1:8080/sshtest/test/testAjax.action

200 OK
7ms
jquery-1.8.3.js (第 8434 行)
头信息Post响应XMLCookies

[{"id":"1","name":"name1"}]

SyntaxError: missing ] after element list


([object XMLDocument])


页面脚本代码如下

$.ajax({
type : "POST",
//dataType : "json",
url : "testAjax.action",
data : {
'users.id' : 49
},
success : function(data) {
var json = eval("("+data+")");
}
});


后台action代码如下

@Action(value = "/testAjax")
public void testAjax() throws Exception {
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
Map<String, String> map = new HashMap<String, String>();
map.put("id", "1");
map.put("name", "name1");
list.add(map);

JSONArray jsonArray = JSONArray.fromObject(list);

//response.setContentType("application/json;charset=UTF-8");
//response.setCharacterEncoding("UTF-8");
response.getWriter().print(jsonArray.toString());
}


...全文
4907 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
宇宙流浪 2016-03-21
  • 打赏
  • 举报
回复
[quote=引用 2 楼 luoxia0805 的回复:] 正遇到类似的问题,用的方法不行哦,我的解决办法是把 dataType:"json"改为dataType:"html" 之后解决啦-- 正解
DS_CH 2015-10-13
  • 打赏
  • 举报
回复
如楼上所说,解决了
luoxia0805 2015-03-17
  • 打赏
  • 举报
回复
正遇到类似的问题,用的方法不行哦,我的解决办法是把 dataType:"json"改为dataType:"html" 之后解决啦--
baobao28 2013-11-12
  • 打赏
  • 举报
回复 1
结贴了,问题解决了 使用 result = eval(" ("+data+") ");时报如下错误 错误: SyntaxError: missing ] after element list 解决方案:不使用eval转,而直接使用data。 原因: $.ajax( { type : "post", dataType : "json", //这里已经定义数据格式 jquery调用时会检测到,从而直接把返回格式当做json处理,所以再转化会报错。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧