ajax 请求失败的原因

news/2025/3/31 10:28:18/

"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)


参考:

http://www.boyunjian.com/do/article/snapshot.do?uid=net.csdn.blog%2Fe_wsq%2Farticle%2Fdetails%2F7521373

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){

正如大家看到的一样,添加了“&& 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){”。 
  
注意:测试的时候一定要先清理一下缓存,我试的时候一直没有效果,后来发现是缓存原因。 
怎样清理浏览器缓存[各种浏览器]        
http://blog.csdn.net/e_wsq/article/details/7521468 
  
也有人说改另一个地方,不过我没有试,上面是我试了没有问题的。 
  
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://www.ppmy.cn/news/235477.html

相关文章

呼叫系统中400电话和呼叫中心的区别和作用是什么呢

一、400电话与呼叫中心的关系 从严格的定义上说&#xff0c;呼叫中心与400电话是两个单独的产品——400电话只是呼叫中心可选择的一种的接入号码&#xff0c;还有其他的号码可以接入呼叫中心使用&#xff0c;例如&#xff1a;800号码、400号码、1或9开头的短号码等&#xff0c…

传统呼叫中心与云呼叫中心哪个好

近几年SaaS、PaaS的普及&#xff0c;让我们很清楚的知道&#xff0c;现在已经进入了“云时代”。众所周知&#xff0c;呼叫中心系统是历经了五代技术革新才来到了云时代&#xff0c;用户习惯和服务场景的不断演变&#xff0c;促使越来越多的企业选择变革。呼叫中心系统不再禁锢…

Adprep 无法完成,原因是回叫功能失败

Adprep 无法完成&#xff0c;原因是回叫功能失败 【问题描述】 尝试将Windows 2012 R2的一台成员服务器提升为Windows 2003域的域控时&#xff0c;无法完成&#xff0c;报错信息如下:LDAP API ldap_search_s() 已完成&#xff0c;返回代码为 0x20Adprep 验证了操作 cn134428a8-…

okcc呼叫中心语音失真是常见通话问题?

是不是有接到过这样的电话&#xff0c;对方声音听起来像机器人毫无感情&#xff0c;通话中声音断断续续&#xff0c;甚至因为声音传输延迟导致交互迟缓的现象&#xff1f;我们拨打电话&#xff0c;是将实时音频以网络数据包的形式传输。如果有较高的带宽&#xff0c;则可以获得…

信号槽连接失败原因分析

信号槽介绍 信号槽是Qt重要的一种机制&#xff0c; 这使得对象之间的通信非常方便。但是使用过程中会遇到连接失败的情况&#xff0c;下面就说一下信号槽的连接&#xff1a; 信号槽连接的前提条件&#xff1a; 1.信号有声明定义&#xff0c;Q_SIGNALS 有该关键字。 2.槽函数有…

ajax发送失败 网络异常,如何检测网络断开导致的Ajax呼叫失败

我使用jquery ajax方法向web服务器发送大量数据,客户端只在收到服务器的确认后才响应,现在假设网络连接在ajax调用的MIDDLE中丢失,那么如何检测这种情况. $.ajax({ url:server.php, data:lots of data from 200KB to 5MB, type:post, success: function(data) { alert(Success)…

操作成功失败html,固话呼叫转移设置不成功怎么办?

怎么把固定电话设定呼叫转移到手机上呢&#xff1f; 我想把固定电话设置呼叫转移到自己的手机号码上&#xff0c;我老是外出。 怎样设置固定电话的呼叫转移&#xff1f; 您好&#xff0c;固话呼叫转移功能是免费的&#xff0c;但是呼转后按通讯费收取&#xff0c;一般是0.15/0.…

数字化转型失败,有哪些原因?

Flexera最近对 CIO 和其他高层 IT 领导者进行的一项调查显示&#xff0c;超过一半的受访者将数字化转型列为他们最关注的一点&#xff0c;紧随其后的是网络安全、云优先/云迁移和改善客户体验&#xff0c;这些都紧紧依赖于数字化转型。 数字化转型不再仅仅是流行词&#xff1b…