如何设置超时到JSONP?

时间:2012-01-10 07:42:36

标签: sencha-touch extjs

我的应用程序中有一些JSONP,&我想为他们设置超时。
如何设定?

它可能是这样的,如果可能的话:):

Ext.util.JSONP.request({
url: mhid.dashboard.hbf.controller+'/get_dashboard'
,method: 'POST'
,timeout : 50000 // TIMEOUT
,callbackKey: 'jsonp_callback'
,params:{
    'site' : site
    ,'fleet' : fleet
    ,'sn' : sn
    ,'format' : 'json'
}
,callback: function(response, opts) {
    var obj = response;
    tpl.overwrite('content', obj);
    loadMask.hide();
}
,failure: function(response, opts) {
    alert('Failure');
}

});

提前致谢

2 个答案:

答案 0 :(得分:0)

我认为使用JSONP是不可能的 - 你应该看一下Ext.Ajax类。此外,使用JSONP无法进行POST(请参阅the Sencha forum

答案 1 :(得分:0)

您需要实现自己的超时并执行故障回调:

var failureCallback = function() {
    // MUST remove the current request, 
    // or it will not dispatch any subsequent new JSONP request
    // unless you refresh your page
    delete Ext.util.JSONP.current;

    alert('Failure');
};

Ext.util.JSONP.request({..}); // as usual 

var failureTimeoutId = setTimeout(function() {
    failureCallback();
}, 30000);
    如果您的请求成功,则
  • 放弃超时 如果请求超时,则
  • 放弃当前请求