if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
var status = xmlHttp.status;
if (status == 200) {
var text = xmlHttp.responseText;
console.log("Ajax send success "+text);
} else {
console.log("状态不正确,为: " + status);
xmlHttp.open("GET", url, true);
xmlHttp.timeout=500;
xmlHttp.ontimeout=function(){
console.log("Ajax request timeout");
xmlHttp.setRequestHeader('content-type','application/x-www-form-urlencoded');
xmlHttp.send(null);
二、JQuery的Ajax写法
function request(url, data, success_callback,error_callback) {
var xhr = $.ajax({
type: "POST", //提交数据的类型 POST GET
url: url, //提交的网址
data: data, //提交的数据
timeout:10000, //设置超时的时间10s
async:true, //请求方式 true异步请求(默认) false同步请求
//返回数据的格式
datatype: "json", //"xml", "html", "script", "json", "jsonp", "text".
xhrFields: {
withCredentials: true
crossDomain: true,
//在请求之前调用的函数
beforeSend: function () {},
//成功返回之后调用的函数
success: function (response) {
success_callback(response);
//调用执行后调用的函数,无论成功或失败都调用
complete: function (XMLHttpRequest, textStatus) {
if(textStatus == 'timeout'){
if (error_callback != null && error_callback != "") {
error_callback();
//调用出错执行的函数
error: function () {
console.log("error"); //请求出错处理
三、XMLHTTP 的 readyState 值含义:
-
0-未初始化,即尚未调用 open。
-
1-初始化,即尚未调用 send。
-
2-发送数据,即已经调用 send。
-
3-数据传送中。
-
4-完成。
四、响应错误代码
-
400
无法解析此请求。
-
403 禁止访问:访问被拒绝。
-
404 找不到文件或目录。
-
405 用于访问该页的 HTTP 动作未被许可。
-
406 客户端浏览器不接受所请求页面的 MIME 类型。
-
407 Web 服务器需要初始的代理验证。
-
410 文件已删除。
-
412 客户端设置的前提条件在 Web 服务器上评估时失败。
-
414 请求 URL 太大,因此在 Web 服务器上不接受该 URL。
-
500 服务器内部错误。
timeout : 1000, //
超时
时间
设置
,单位毫秒
type : 'get', //请求方式,get或post
data :{}, //请求所传参数,json格式
dataType:'json',//返回的数据格式
success:fun...
最近在用EXtjs做项目,在加载数据量特别大的时候会出现加载
超时
现象,在FB下查看,原来是ext默认
ajax
请求30秒。 在网上搜到下面的解决方法,以备参考和其他人参考。 ExtJS做
Ajax
请求的时候,默认的相应
时间
是30秒,如果后来数据查询
时间
超过30秒,ExtJS就会报错。 这就需要修改ExtJS的
超时
时间
: 2种方法: 1:在
Ajax
请求的时候加:(timeout: 100000000)属性 代码如下: Ext.
Ajax
.request({ url: ‘foo.php’, success: someFn, failure: otherFn, timeout: 100000000,//
没发送之前是0,发送以后是1,onreadystatechange事件里面监控的是2,3,4这几个状态,readystate仅仅是针对请求的状态码,获取资源是否成功取决于status的状态。场景:
AJAX
请求后,在成功的回调函数中给某一全局变量赋值,如果是异步请求,是不能赋值成功的,因为
AJAX
操作需要
时间
,而外部程序执行比
AJAX
快,所以不会成功,但是异步可以,因为程序阻塞。async: 异步默认的async为true,
AJAX
异步请求时,不影响页面的加载,用户操作以及
AJAX
程序后的程序执行。
使用bootstrapTable获取数据时,有时由于网络或者服务器的原因,无法及时获取到数据,页面显示一直处于等待状态。为了改善效果,考虑
设置
超时
,请求发送后
超时
即显示无数据,过段
时间
重新发起请求。
实现上,bootstrapTable通过
ajax
获取数据,可以使用
ajax
Options选项
设置
ajax
的一些属性。
bootstrapTable要
设置
timeout,首先要将async属性
设置
为true,在bootstrapTable中async默认是false的。例如
$(#event_table).bootstrapTable({
url: urlAddr,
ajax
Options
您要返回的有效状态码
https://timeout-as-a-service.herokuapp.com/<timeout>/<status>
请求完成后,您将获得一个JSON对象:
" waitTime " : 1000 ,
" status " : 200
Heroku上的公共API:
CORS支持
CORS允许Origin '*' ,因此您应该可以在任何地方使用它。
不,它不会反映其他地方的响应。 明显。 那太疯狂了。
缺省情况下,等待
时间
限制为90秒,除非您使用MAX_WAIT_TIME环境变量指定了不同的最大等待
时间
。
XMLHttpRequest示例
const timeout = 2000 ,
const st
测试
时间
:2019/02/26MacOS 环境下,timeout在各浏览器默认值为(以下浏览器都为当前
时间
最新版本)chrome 72.x 为4minsafari 12 为8minfirefox 65 貌似没有
超时
时间
测试代码Documentqueryconst
ajax
= (url = '/api/timeout') => {const xhr = new XMLHttpRequest(...
设置
时间
超过,断开请求连接
*
ajax
接口----------------------------------------------------------------------------
* @param url 请求路径
* @param data 请求参数
* @param type 请求方式
* @param callbak 成功回调
假如XMLHttpRequest对象并没有成功呢?我们是不是应该也对这种情况加以处理,以便于让浏览者明白,哦,现在程序出问题了,而不是让浏览者一直的去等待数据的呈现,我想这样就能使得用户体验更好,虽然我们的请求因为种种原因失败,但是我们要能显示的在失败的第一
时间
告诉了浏览者,那么浏览者就不会一直再去等待数据的显示,或许他可以进行其他的操作,或者重新请求,这样岂不更人性化些~那么说了这么多,我们应该
我尝试在jQuery
ajax
请求的成功函数页面刷新后显示引导模式。我认为发生的事情是,一旦页面刷新,setTimeout就会被擦掉,所以它永远不会被触发。我需要页面来刷新内容,但也希望为用户提供一个显示发生了什么的对话框。这是我的代码:$.
ajax
({type: "POST",url: '@Url.Action("UpdateVideoUrl", "ManageVideos")',data: J...
初学者的我看起来似乎没问题,然而setTimeout每次都会执行多次,然后才根据服务器的expiresIn固定
时间
调用refresh接口。原因是因为,
ajax
默认是异步执行的,而最开始的expiresIn还没有赋值,setTimeout就运行了,所以相当于
也怪不得执行很多次了。解决方法有两种,第一种加上同步代码块,等
ajax
执行完成再执行下面的功能,如下
然而这样会影响到别人的代码,等待token返回的时候无
会灵活的运用
ajax
的方法,非常重要,本文先给大家介绍
ajax
的几种方法,然后通过实例给大家分析详解,具体内容请看下文吧
1.url:
要求为String类型的参数,(默认为当前页地址)发送请求的地址。
2.type:
要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持。
3.timeout:
要求为Number类型的参数,
设置
请求
超时
时间
(毫秒)。此
设置
将覆盖$.
ajax
Setup()方法的全局
设置
。
4.async:
要求为Boolean类型的参数,默认
设置
为true,所有请求均为异步请求
在一个项目真正上线的时候,一定会存在一个项目
超时
的问题,也就是服务端无法及时响应客户端提交的内容。通过对
ajax
设置
超时
设置
,给用户一个提醒。
超时
设置
:
时间
定为3秒(2s之后如果没有返回结果 就发送
超时
设置
)服务端
设置
这时候发送
ajax
请求会3s后收到响应。
超时
提醒(在实际场景会使用div 实际场景)
超时
和异常给用户一个提醒(通过
ajax
)在网路异常的时候也给用户一个提醒。可以借助chorme浏览器进行。