Ext.data.JsonP.request超时

时间:2013-01-11 09:51:56

标签: sencha-touch

我写了一个控制器。当我从视图中单击该按钮时,此控制器通用“按钮”的调用方式如下:

        'button': {
            tap: function() {



           Ext.data.JsonP.request({
                    url: 'http://download.finance.yahoo.com/d/quotes.csv',
                    params: {
                        s: '^BSESN',
                        f: 'nsl1op'   
                    },
                    callbackKey: 'callback',
                    scope: this,
                    success: function( res, req ) {
                        Ext.example.msg('Sucess!', 'CSV file successfully generated.');
                        Ext.data.StoreManager.get('Files').load();
                    },
                    failure: function( res, req ) {
                        console.log('Failed to load csv file.');
                    }
                });

....
....
....

它超时并且失败被称为“无法加载csv文件。”

我使用的原始网址是“http://download.finance.yahoo.com/d/quotes.csv?s=^BSESN&f=nsl1op”。

我想知道我哪里出错了。

1 个答案:

答案 0 :(得分:0)

您正在通过JSONP请求CSV文件。

该文件将通过''标签注入DOM(这是JSONP的工作方式),但由于它不是有效的JavaScript文件,因此您的回调(callbackKey: 'callback')永远不会执行,因此Sencha Touch将触发超时处理程序,看到注入的<script>标记没有触发回调。

您可能需要将URL更改为实际上是JSONP(包含在回调中的有效JavaScript),而不是CSV文件。