`
编程足球
  • 浏览: 250789 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

ext-basex.js 进行Ext.Ajax.request 同步请求 FF无法正常

    博客分类:
  • Ext
 
阅读更多
1. ext-basex.js 下载地址.
http://code.google.com/p/ext-basex/

2. 引入同步所需的包ext-basex.js

3. 进行测试:
Ext.Ajax.request({
	url : 'servlet/originalRequire?type=checkOrId',
	method: 'GET',
	async : false,
	success : function(response) {
		alert("提交了");
	},
	failure : function() {
		Ext.Msg.alert('提交失败', '访问服务器出现错误!');
		return;
	}
});


发现google ,ie都正常使用,但是在ff下会走到failure ,无法正常使用。
经过google 后发现网络上有一个解决方案:
1. 打开 ext-basex-debug.js.
2. 找到 if(callback && callback.timeout)
if(callback && callback.timeout){
    ('timeout' in r) && (r.timeout = callback.timeout);
    ('ontimeout' in r) && 
       (r.ontimeout = this.abort.createDelegate(this, [o, callback, true], 0));
    ('ontimeout' in r) ||
       // Timers for syncro calls won't work here, as it's a blocking call
       (options.async && (this.timeout[o.tId] = window.setInterval(
            function() {A.abort(o, callback, true);
        }, callback.timeout)));
}

修订:
    if(callback && callback.timeout){ 

为:
    if(callback && callback.timeout && options.async){ 


3. 保存试运行即可。

ps: 在经过压缩后的ext-basex.js.
可以通过查找if(q&&q.timeout)

修改为:
if(q&&q.timeout&&k.async)

(如果没有找到,则直接通过 .timeout 进行查找定位)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics