Sencha Touch AJAX 请求问题:ReferenceError:找不到变量:请求

发布于 2025-01-08 07:05:27 字数 2142 浏览 0 评论 0原文

我们正在使用 Sencha Touch 1.1 和 PhoneGap 1.3.0 构建一个应用程序以部署到 iOS。

我们的应用程序发出多个 AJAX 请求来验证用户身份并从服务器检索数据。除了尝试使用无效凭据进行身份验证之外,我们的所有请求均正确执行。

我正在使用 Weinre 调试在 iOS 模拟器中运行的应用程序。 在“网络”窗格中,请求挂在“待处理”状态,并且在控制台中收到以下错误:

发生错误:未定义:[未知 lineno]:ReferenceError:找不到变量:请求

此错误当达到超时值时出现。

这是我的控制器的代码:

Ext.regController('Login', {

login: function(options)
{
    var loader = this.application.viewport.query('#loader')[0]; 
    loader.show();
    var string = options.user + ":" + options.pass;
    var encodedString = Ext.util.Base64.encode(string) + "==";
    Ext.Ajax.defaultHeaders = { Authorization: "Basic " + encodedString};
    Ext.Ajax.request({
        url: 'http://test.com/login.do',
        method: 'POST',
        timeout: 5000,
        scope: this,
        callback: function (options, success, response) {
            if (success){
                buildingStore.load({
                    callback: function (){
                        Ext.redirect('Main/loggedIn');
                        loader.hide();
                    }
                });
                Ext.redirect('Main/loggedIn');
            }
            else {
                alert("failed");
                console.log(response.status);
                loader.hide();
                var loginFailure = new Ext.Panel ({
                    floating: true,
                    centered: true,
                    floating: true, 
                    modal: true,
                    layout: 'fit',
                    cls: 'loginError',
                    html: '<h12>Login was unsuccessful.<br>Please try again.</h12>',
                });
                loginFailure.show();    
            }
        }
    });
    Ext.Ajax.on({
        requesterror: function(conn, response, options, e){
                alert("error");
        },
        requestexception: function(conn, response, options, e){
                alert("exception");
        }
    });
    },
});

以及 Weinre 的屏幕截图:

WEINRE Error

感谢您的帮助! 凯文

We are building an application using Sencha Touch 1.1 and PhoneGap 1.3.0 for deployment to iOS.

Our app makes several AJAX requests to authenticate a user and retrieve data from the server. All of our requests execute correctly with the exception of attempting to authenticate using invalid credentials.

I am using Weinre to debug the app running in the iOS simulator.
In the Network pane the request hangs on "Pending", and in the console I receive the following error:

error occurred: undefined:[unknown lineno]: ReferenceError: Can't find variable: request

this error appears when the timeout value has been reached.

Here's the code for my controller:

Ext.regController('Login', {

login: function(options)
{
    var loader = this.application.viewport.query('#loader')[0]; 
    loader.show();
    var string = options.user + ":" + options.pass;
    var encodedString = Ext.util.Base64.encode(string) + "==";
    Ext.Ajax.defaultHeaders = { Authorization: "Basic " + encodedString};
    Ext.Ajax.request({
        url: 'http://test.com/login.do',
        method: 'POST',
        timeout: 5000,
        scope: this,
        callback: function (options, success, response) {
            if (success){
                buildingStore.load({
                    callback: function (){
                        Ext.redirect('Main/loggedIn');
                        loader.hide();
                    }
                });
                Ext.redirect('Main/loggedIn');
            }
            else {
                alert("failed");
                console.log(response.status);
                loader.hide();
                var loginFailure = new Ext.Panel ({
                    floating: true,
                    centered: true,
                    floating: true, 
                    modal: true,
                    layout: 'fit',
                    cls: 'loginError',
                    html: '<h12>Login was unsuccessful.<br>Please try again.</h12>',
                });
                loginFailure.show();    
            }
        }
    });
    Ext.Ajax.on({
        requesterror: function(conn, response, options, e){
                alert("error");
        },
        requestexception: function(conn, response, options, e){
                alert("exception");
        }
    });
    },
});

and a screenshot of Weinre:

WEINRE Error

Thanks for your help!
Kevin

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

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

发布评论

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

评论(1

稚气少女 2025-01-15 07:05:27

升级到 sencha touch 1.1 可以解决此问题。感谢@kev_additct。只是将其放入答案而不是评论中

Upgrading to sencha touch 1.1 fixes this issue. Credit to @kev_additct. Just putting it in an answer rather than a comment where it already is

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