我用的是ExtJS 4.0.7,代码的用作判断代码是否已存在,调用callback后为什么response.responseText没有返回值?
请指教,谢谢!1. js    items:[
    {xtype: 'textfield',
     name: 'cscode',
     maxLength: 2,
     disabled: true,
     listeners: {
     blur:  function(){
     var value = specForm.getForm().findField('cscode').getValue();
var exist = false;
Ext.Ajax.request({
url: 'investaction.jsp?action=isExistSpecCode',
async: false,
params: {"cscode": value},
method: 'POST',
callback: function(options, response){
msg = ["return:", response.responseText];
alert(msg.join(''));
}

});
return exist;
     } 
     },
     fieldLabel: '专业代码'},2. 服务器端代码 investaction.jsp
<%
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String action = request.getParameter("action");   if(action.equals("isExistSpecCode")){
String isExist = "false";
String scode = request.getParameter("cscode");
if(invest.isExistSpeccode(scode)){
isExist = "true";
}
response.getWriter().write(isExist);
   
%》

解决方案 »

  1.   

    response.getWriter().write(isExist);在这步后面刷新关闭。还有打印一下是否得到了isExist是多少
      

  2.   

    response.getWriter().flush();//刷新这个单词我忘记怎么写了,反正这里是刷新
    response.getWriter().close();//关闭流
    write不如可以试试print()这个函数试试
      

  3.   

    我解决了,原来是callback: function(options, success, response)这三个参数的顺序乱了,所以服务器返回值不对位,另外,d945332077 说的没错,若不加以下两行代码,返回值会是"true/r/n/r/n" ,若有就返回"true",谢谢您!
    response.getWriter().flush();
    response.getWriter().close();