未捕获的类型错误:无法调用方法“请求”;未定义的

发布于 2024-11-03 08:16:17 字数 1281 浏览 0 评论 0原文

在我的 javascript 代码中,我不断收到以下错误:

Uncaught TypeError: Cannot call method 'request' of undefined

我的 Javascript 如下。任何帮助将不胜感激!

myJsonStore = {
    store1: new Ext.data.JsonStore({
        root: 'rootstore1',
        fields: ['UserID', 'UserName']
    })
};  

//------My panel------
items: [{                           
    xtype: 'combo',                          
    id: 'UName',                            
    fieldLabel: 'User',
    emptyText: 'All',                            
    store: myJsonStore.store1,                          
    displayField: 'UserName',                            
    valueField: 'UserID'                               
}] 

//--------------------

Ext.Ajax.request({                             
    url: "rPages/rLogMatchOdds.aspx",                            
    params: {                               
        m: 'init'                            
    },                                
    success: function(response) {     
        var data = Ext.decode(response.responseText);
        myJsonStore.store1.loadData(data);
    }
});

Ext.getCmp('UName').store.on('load', function(my, rec) {
    Ext.getCmp('UName').setValue(rec[0].get('UserName'));                         
}, this);

In my javascript code, I keep getting the following error:

Uncaught TypeError: Cannot call method 'request' of undefined

My Javascript is below. Any assistance would be greatly appreciated!

myJsonStore = {
    store1: new Ext.data.JsonStore({
        root: 'rootstore1',
        fields: ['UserID', 'UserName']
    })
};  

//------My panel------
items: [{                           
    xtype: 'combo',                          
    id: 'UName',                            
    fieldLabel: 'User',
    emptyText: 'All',                            
    store: myJsonStore.store1,                          
    displayField: 'UserName',                            
    valueField: 'UserID'                               
}] 

//--------------------

Ext.Ajax.request({                             
    url: "rPages/rLogMatchOdds.aspx",                            
    params: {                               
        m: 'init'                            
    },                                
    success: function(response) {     
        var data = Ext.decode(response.responseText);
        myJsonStore.store1.loadData(data);
    }
});

Ext.getCmp('UName').store.on('load', function(my, rec) {
    Ext.getCmp('UName').setValue(rec[0].get('UserName'));                         
}, this);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

把时间冻结 2024-11-10 08:16:17

通常,当错误的形式为无法调用未定义的方法'X'时,这意味着您尝试调用X的任何对象都不存在。

在您的情况下,似乎 Ext.Ajax 未定义。解决此问题的最简单方法包括两个简单的步骤:

  • 确保您已包含创建 Ext.Ajax 的 javascript 文件。如果您使用的是 ext-all.js 文件,那么您不必担心这一点。
  • 确保在浏览器准备就绪之前不会执行任何代码。最好的方法是将所有代码包装在
    Ext.onReady() 调用。我在下面提供了一个例子。

    Ext.onReady( function() { //这里是你的代码 });
    

您可以在 ExtJS 示例页面 中查看更多示例。

Usually, when the error is of the form Cannot call method 'X' of undefined, it means that whatever object you are attempting to call X from does not exist.

In your case, it appears as though Ext.Ajax is undefined. The easiest way to resolve this involves two simple steps:

  • Make sure that you've included the javascript file that creates Ext.Ajax. If you're using the ext-all.js file, then you shouldn't have to worry about this.
  • Make sure that none of your code executes until the browser is ready. The best way to do this is to wrap all of your code within a
    Ext.onReady()
    call. I've provided an example below.

    Ext.onReady( function() { //your code goes here });
    

You can see more examples of this at the ExtJS Examples page.

心如狂蝶 2024-11-10 08:16:17

也被这个问题困扰了。

解决方案是您在 Ext.onReady 之前调用 Ext.require('Ext.Ajax') ,如下所示:

Ext.require('Ext.Ajax');

Ext.onReady(function() {
   Ext.Ajax.request({
     // your code here...
});

Got bitten by this problem too.

The solution is for you to call Ext.require('Ext.Ajax') before Ext.onReady like so:

Ext.require('Ext.Ajax');

Ext.onReady(function() {
   Ext.Ajax.request({
     // your code here...
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文