Ext.onReady(function(){
     var _store = new Ext.data.JsonStore({
     proxy: new Ext.data.HttpProxy({url:"<%=basePath%>/p.jsp"}),
     fields:["name","gender"]
    
     });
      _store.on("load",function(_store){
     //alert(1);
     alert(_store.getCount());
     }); 
     //alert(_store);
     _store.load({params:{start:0,limit:10000}}); 
     });firebug的错误提示"NetworkError: 404 /extajax/undefined - http://localhost:8080/extajax/undefined"p.jsp和代码所在页面都在WebRoot下面,extajax是我的工程名。。为嘛p.jsp找不到????
相对路径我也试了,错误提示一模一样。。

解决方案 »

  1.   

    你看下p.jsp页面,是不是有地方写错了,alert一下
      

  2.   

    proxy: new Ext.data.HttpProxy({url:"<%=basePath%>/WebRoot/p.jsp"}),这样行么?
    或者:
    proxy: new Ext.data.HttpProxy({url:"/WebRoot/p.jsp"}),
      

  3.   

    http://localhost:8080/extajax/p.jsp
    浏览器直接打开它,行不行?
      

  4.   


    <%
           /* request.setCharacterEncoding("utf-8");
           response.setCharacterEncoding("utf-8");
           String text=request.getParameter("content");
           System.out.println(text);  //测试是否接收到值
           response.getWriter().write("{success:true}");   */
          // response.sendRedirect("MyJsp.jsp");
          
          response.setHeader("Pragma","No-cache");
    response.setHeader("Cache-Control","no-cache");
    response.setDateHeader("Expires", 0); 
          response.setCharacterEncoding("utf-8");   
         
          response.getWriter().write("[{name:\"xxxx\",gender:\"nv\"},{name:\"xx\",gender:\"nan\"}]");  
         response.getWriter().flush();
          %>
      p.jsp的代码
      

  5.   

    也不行啊。。
    直接访问p.jsp的结果[{name:"xxxx",gender:"nv"},{name:"xx",gender:"nan"}] 
      

  6.   

    不是你这里出错吧http://localhost:8080/extajax/undefined是不是其他地方引用了没赋值的变量,导致出现undefined
      

  7.   

    是不是其他地方url填错了哦,
    这儿p.jsp怎么也不会变为undefined的
    找找其他还有什么地方写了url,并且url字符串后面连接了一个变量,可能该变量未赋值
      

  8.   

    我把库用3.0的,就能识别了。。
    但我这个buttons的ownerCt又成问题了。。为什么是2个。一个不就是找到_form了么。。
    var _form = new Ext.form.FormPanel({
         renderTo:Ext.getBody(),
         title:"...",
          id:"form",
         width:350,
         frame:true,
         items:[
         {xtype:"textfield",fieldLabel:"name",name:"name"},
        
         {xtype:"textfield",fieldLabel:"gender",name:"gender"}
         ],
         buttonAlign:"right",
         buttons:[
        
         {text:"修改",
        
         handler:function(){
         if(Ext.getCmp("grid").getSelectionModel().getCount()==0)
         return;
         var _record = Ext.getCmp("grid").getSelectionModel().getSelected();
         alert(this.ownerCt.title);
         var values = this.ownerCt.ownerCt.getForm().getValues();
       
         _record.set("name",values["name"]);
         _record.set("gender",values["gender"]);
         _record.commit();
         }
         }
         ]
         });
    extjs还能再难用点么。。受不了了。
      

  9.   

    //var values = this.ownerCt.ownerCt.getForm().getValues();
    var values = _form.getForm().getValues();//直接用formpanel申明的变量就好了吧。使用ownerCt得看ext怎么render的了,this.ownerCt得到的是button的容器,而不是form吧。。
      

  10.   


    我试过2.0.。。一个ownerCt就取到了_form。。求解下js有类似于java的反射机制么,可以找到第一个ownerCt到底是什么加属性alert的话又不知道加哪。。其实我FormPanel里还有id,还可以用id取
    唉,其实也没什么值得较真的,我的坏习惯,搞不懂就会影响写代码的情绪,多写了一个就多一个吧。