赞
踩
之前该应用一直工作正常,突然有一天不能正常获取数据,跟踪该请求后发现,
"Failed to set the 'timeout' property on 'XMLHttpRequest': timeouts cannot be set for synchronous requests made from a document."
猜测可能原因是因为浏览器升级!
处理方法:
修改ext-base.js方法中
makeRequest : function(method, uri, callback, postData, options)方法的
中代码:
if(callback && callback.timeout)
为:
if(callback && callback.timeout && options.async)
参考:
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 文件中的一条语句:
将以下代码:
if(callback && callback.timeout){
if(callback && callback.timeout && options.async){
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。