我写了一个控制器。当我从视图中单击该按钮时,此控制器通用“按钮”的调用方式如下:
'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”。
我想知道我哪里出错了。
答案 0 :(得分:0)
您正在通过JSONP请求CSV文件。
该文件将通过''标签注入DOM(这是JSONP的工作方式),但由于它不是有效的JavaScript文件,因此您的回调(callbackKey: 'callback'
)永远不会执行,因此Sencha Touch将触发超时处理程序,看到注入的<script>
标记没有触发回调。
您可能需要将URL更改为实际上是JSONP(包含在回调中的有效JavaScript),而不是CSV文件。