从Ajax响应中获取无效响应

时间:2014-09-05 00:44:51

标签: jquery ajax java-ee servlets

我有以下servlet,它接受某些参数并发送响应:

int shares= sh.viewProtfolio().getShareInfoByCompName(value);
response.setContentType("text/plain");
response.getWriter().write(shares); 

我在前端跟随jquery:

$("#company").change(function(){
$.get('${pageContext.request.contextPath}/ajax?get=getSharesInfo&value='+ company.val(),  
    function(response) {
    console.log(response);
   });
});

我在服务器端进行了调试,我确实看到我正在向响应对象写入整数个共享。但是在正面,我正在接受?'符号。不知道为什么,任何帮助都会受到赞赏。

我也试过设置字符编码,但这次我得到了一些其他随机字符。

response.setCharacterEncoding("UTF-8");

1 个答案:

答案 0 :(得分:0)

通过将int转换为String然后将其写入响应来解决问题。

Integer shares= sh.viewProtfolio().getShareInfoByCompName(value);
response.setContentType("text/plain");
response.getWriter().write(shares.toString()); 

文档参考:

http://docs.oracle.com/javase/7/docs/api/java/io/PrintWriter.html#write(int)

IO pritntWriter.Write(int)方法尝试将我的int结果编码为char。这是造成这种意外行为的原因。