-1

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

        '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文件”。

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

我想知道我哪里出错了。

4

1 回答 1

0

您通过 JSONP 请求 CSV 文件。

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

You probably need to change the URL to something that is actually JSONP (iow valid JavaScript wrapped in a callback), not a CSV file.

于 2013-01-11T10:56:15.600 回答