I have written a controller. When I click the button from view, this controller generic ‘button’ is called as follows:
'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.');
}
});
....
....
....
It timesout and failure is called “Failed to load csv file.”
The original URL I am using is “http://download.finance.yahoo.com/d/quotes.csv?s=^BSESN&f=nsl1op”.
I would like know where I am going wrong.
You’re requesting a CSV file via JSONP.
The file will be injected into the DOM via a ” tag (which is how JSONP works), but since it’s not a valid JavaScript file, your callback (
callbackKey: 'callback') is never executed, so Sencha Touch will fire the timeout handler, seeing the callback has not been fired by the injected<script>tag.You probably need to change the URL to something that is actually JSONP (iow valid JavaScript wrapped in a callback), not a CSV file.