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格式也无关。

求问到底怎么修改?

5个回答

                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对字符串的长度应该没有限制吧

qianliangjiexialing
夏令 回复觅夜的黑: 用的String类型,应该不会呀,应该用什么呢?
接近 5 年之前 回复
u013829202
觅夜的黑 回复夏令: 难道是struts2的接收的类型错了吗?
接近 5 年之前 回复
qianliangjiexialing
夏令 多谢,自己也不敢相信竟然是这个原因,半信半疑试了一下,不能用struts2里变量传参的方式
接近 5 年之前 回复

用fiddler调试下,你的ajax发送的数据是否有问题。另外服务器也应该加上判断,而不是直接出错。

qianliangjiexialing
夏令 后台代码基本的try catch都有的,但一切正常,也不报错
接近 5 年之前 回复
qianliangjiexialing
夏令 不是”发送的数据“,打错了,是”返回到前台的数据“
接近 5 年之前 回复
qianliangjiexialing
夏令 好,我试一下fiddler,我跟踪过后台代码,从接收参数到返回数据都没有任何问题的,由于发送的数据中有一个属性的值特别长,改短后就不报错了,说明是和json长度有关的
接近 5 年之前 回复

判断了两个可能性,
1.和struts2传输数据到前台的方式有关

2.和json字符串长度限制有关(奇怪的是其实也没有多长,数据库里length一下也只有2000+,一点都不长啊),
那么肯定有办法可以取消这个长度限制的,怎么取消是各问题

前台是都对某个控件的长度做了限制。

qianliangjiexialing
夏令 还没轮到给控件赋值呢,仔细看我贴的代码,直接进了error
接近 5 年之前 回复

有人在吗??????????

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐