ext-basex.js处理的同步请求在Firefox12中不支持(在Firefox11中是支持的)怎么办?(已解答)
2012-06-04 15:51
375 查看
Ext.Ajax.request发送同步请求---基于ext-basex
首先从http://code.google.com/p/ext-basex/下载ext-basex 脚本文件,解压后按照说明readme文件的方法引用EXT库和ext-basex。
<head>
<link rel="stylesheet" type="text/css" href="../lib/ext-3.0+/resources/css/ext-all.css" />
<script type="text/javascript" src="../lib/ext-3.0+/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../lib/ext-3.0+/ext-all[-debug].js"></script>
<script type="text/javascript" src="../lib/ux/ext-basex[-debug].js"></script>
</head>
然后使用Ext.Ajax.request方法,添加 async: false, //ASYNC 是否异步( TRUE 异步 , FALSE 同步),其他参数不变。
Ext.Ajax.request({
url: "StreamingProxy.ashx",
method: "GET",
async: false, //ASYNC 是否异步( TRUE 异步 , FALSE 同步)
success: function(response, opts) {
}, //请求成功的回调函数
failure: function() { alert("获取目录请求失败!"); } // 请求失败的回调函数
});
注意:做了以上操作后在IE、google chrome、firefox11下是没有问题的,但到了firefox12下去看,就发现执行这个的时候一直执行的是失败,也就是走到failure中去了。
Ext.Ajax.request({
url : 'UserValidate',
method : 'post',
params : {
type : 'checksession'
},
async : false, // async 是否异步( true 异步 , false 同步)
success : function(response, opts) {
alert('response.responseText:'+response.responseText);
var val = Ext.util.JSON.decode(response.responseText);
if (val.nosession) {
window.location.href = "index.html";
return;
}
},
failure : function(response,options) {
alert('4444444444444444444444444');
alert('failure response.responseText:'+response.responseText);
window.location.href = "index.html";
return;
}
});
如果加上“async : false, // async 是否异步( true 异步 , false 同步)”则在firefox中无法执行EXt.ajax.request请求,也就是老跑到failure中去,这个同步是要加上ext-basex.js的。
解决办法:
修改ext-basex-debug.js文件中的一条语句:
将以下代码:
[javascript] view plaincopy if(callback && callback.timeout){
改为:
[javascript] view plaincopy if(callback && callback.timeout && options.async){
正如大家看到的一样,添加了“&& options.async”。
改完上面的地方就可以了。
如果你不是使用的debug版,使用的是压缩的版本,那么在ext-basex.js中查找“if(u&&u.timeout){”(注意不含引号),找到后修改为“if(u&&u.timeout&&n.async){”,当然,你可以直接替换。
结论:
将“if(u&&u.timeout){”改为“if(u&&u.timeout&&n.async){”。
注意:测试的时候一定要先清理一下缓存,我试的时候一直没有效果,后来发现是缓存原因。
怎样清理浏览器缓存[各种浏览器]
/article/2954768.html
也有人说改另一个地方,不过我没有试,上面是我试了没有问题的。
in ext-basex.js 4.1 about line 1011
('timeout' in r) && (r.timeout = callback.timeout);
modified to :
(options.async) && ('timeout' in r) && (r.timeout = callback.timeout);
首先从http://code.google.com/p/ext-basex/下载ext-basex 脚本文件,解压后按照说明readme文件的方法引用EXT库和ext-basex。
<head>
<link rel="stylesheet" type="text/css" href="../lib/ext-3.0+/resources/css/ext-all.css" />
<script type="text/javascript" src="../lib/ext-3.0+/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../lib/ext-3.0+/ext-all[-debug].js"></script>
<script type="text/javascript" src="../lib/ux/ext-basex[-debug].js"></script>
</head>
然后使用Ext.Ajax.request方法,添加 async: false, //ASYNC 是否异步( TRUE 异步 , FALSE 同步),其他参数不变。
Ext.Ajax.request({
url: "StreamingProxy.ashx",
method: "GET",
async: false, //ASYNC 是否异步( TRUE 异步 , FALSE 同步)
success: function(response, opts) {
}, //请求成功的回调函数
failure: function() { alert("获取目录请求失败!"); } // 请求失败的回调函数
});
注意:做了以上操作后在IE、google chrome、firefox11下是没有问题的,但到了firefox12下去看,就发现执行这个的时候一直执行的是失败,也就是走到failure中去了。
Ext.Ajax.request({
url : 'UserValidate',
method : 'post',
params : {
type : 'checksession'
},
async : false, // async 是否异步( true 异步 , false 同步)
success : function(response, opts) {
alert('response.responseText:'+response.responseText);
var val = Ext.util.JSON.decode(response.responseText);
if (val.nosession) {
window.location.href = "index.html";
return;
}
},
failure : function(response,options) {
alert('4444444444444444444444444');
alert('failure response.responseText:'+response.responseText);
window.location.href = "index.html";
return;
}
});
如果加上“async : false, // async 是否异步( true 异步 , false 同步)”则在firefox中无法执行EXt.ajax.request请求,也就是老跑到failure中去,这个同步是要加上ext-basex.js的。
解决办法:
修改ext-basex-debug.js文件中的一条语句:
将以下代码:
[javascript] view plaincopy if(callback && callback.timeout){
改为:
[javascript] view plaincopy if(callback && callback.timeout && options.async){
正如大家看到的一样,添加了“&& options.async”。
改完上面的地方就可以了。
如果你不是使用的debug版,使用的是压缩的版本,那么在ext-basex.js中查找“if(u&&u.timeout){”(注意不含引号),找到后修改为“if(u&&u.timeout&&n.async){”,当然,你可以直接替换。
结论:
将“if(u&&u.timeout){”改为“if(u&&u.timeout&&n.async){”。
注意:测试的时候一定要先清理一下缓存,我试的时候一直没有效果,后来发现是缓存原因。
怎样清理浏览器缓存[各种浏览器]
/article/2954768.html
也有人说改另一个地方,不过我没有试,上面是我试了没有问题的。
in ext-basex.js 4.1 about line 1011
('timeout' in r) && (r.timeout = callback.timeout);
modified to :
(options.async) && ('timeout' in r) && (r.timeout = callback.timeout);
相关文章推荐
- ext-basex.js处理的同步请求在Firefox12中不支持(在Firefox11中是支持的)怎么办?(已解答)
- ext-basex.js处理的同步请求在Firefox12、谷歌最新版本中不支持(在Firefox11中是支持的)怎么办?(已解答)
- ext-basex.js处理的同步请求在Firefox12、谷歌最新版本中不支持(在Firefox11中是支持的)怎么办?(已解答)
- Ext.Ajax.request同步请求 非ext-basex.js方法
- Ext.Ajax.request发送同步请求---基于ext-basex
- Ext.Ajax.request发送同步请求---基于ext-basex
- js处理url中的请求参数(编码/解码)
- 网络处理2-异步POST请求和同步请求
- 关于异步I/O请求被同步处理的问题。。
- DWR3页面请求处理机制分析之util.js
- 网络处理2-异步POST请求和同步请求
- SharedPreferences支持进程同步吗?怎么让它支持
- js ajax post请求 传递一个较长的参数(含有逗点),IE浏览器可以正常传递到后台做处理,谷歌浏览器会把参数拦截,找不到相应的目标
- 三级联动时ajax的同步请求和异步请求处理
- libcurl基础教程及封装(支持同步异步请求,支持多线程下载,支持https)
- JS&CSS文件请求合并及压缩处理研究(三)
- JS&CSS文件请求合并及压缩处理研究(四)
- 微信小程序开发系列(六)——“处理请求时出错”怎么处理?
- node.js中get与post请求的处理
- 当pycharm不支持svn时,怎么处理(for windows)