问题描述
- jsp+struts2+jquery ajax返回Internal server error
-
架构: struts2+jsp+jquery
关键代码:
jQuery.ajax({
url: 'business/xxxx.action',
data: 'id='+id,
type: 'POST',
dataType:"json",
error: function(request,textStatus,errorThrown) {alert(errorThrown); //前台打出:internal server error alert(request.status); //前台打出: 500 alert(request.readyState); //前台打出:4 alert(textStatus);//前台打出: 空字符串 },
1.后台程序不报错,返回的json字符串也没有问题(已跟踪过代码)
应该是struts往前台传值的时候出了问题,可是看不到报错,不得而知
2.怀疑是json长度的问题,因为如果把长度改小,就可以正常显示数据,不会走error方法了
所以,和json格式也无关。求问到底怎么修改?
解决方案
JSONObject jsonObject = new JSONObject();
jsonObject.put("categorys", objectTypes);
JSONArray jsonArray = new JSONArray();
jsonArray.add(jsonObject);
System.out.println(jsonArray);
PrintWriter out = response.getWriter();
out.write(jsonArray.toString());
这样返回的json对字符串的长度应该没有限制吧
解决方案二:
jquery+ajax+struts2
Struts2整合Jquery Ajax
struts2 + jquery + json 进行ajax请求
解决方案三:
用fiddler调试下,你的ajax发送的数据是否有问题。另外服务器也应该加上判断,而不是直接出错。
解决方案四:
判断了两个可能性,
1.和struts2传输数据到前台的方式有关
2.和json字符串长度限制有关(奇怪的是其实也没有多长,数据库里length一下也只有2000+,一点都不长啊),
那么肯定有办法可以取消这个长度限制的,怎么取消是各问题
解决方案五:
前台是都对某个控件的长度做了限制。
解决方案六:
有人在吗??????????
时间: 2025-01-02 09:55:13