2013-01-11 81 views
-1

我已经写了一个控制器。当我从视图中点击按钮,该控制器通用的“按钮”被称为如下:Ext.data.JsonP.request timeout

 '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.'); 
        } 
       }); 

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

它timesout和失败被称为“无法加载csv文件。”

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

我想知道我出错的地方。

回答

0

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

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

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