Last updated 6 years ago
使用jQuery来进行Ajax请求时,可以在请求时带上timeout参数设置超时时间。
当进行跨域JSONP请求时,使用jQuery 1.4.x版本时,IE9、Chrome 52、Firefox 49测试 JSONP时,请求在超时后不能被取消,即使客户端超时了,该脚本也将一直运行;使用jQuery1.5.2时超时是起作用了,但是,发出去的请求是没有取消的(请求还处于执行状态)。
默认为0,表示不限制,单位均为毫秒
全局设置:
实例配置:
请求配置:
《亿级流量网站架构核心技术》:超时与重试机制
/
$.ajax({ url:"http://xxx.xx.com:8080/test", dataType:"json", timeout:2000, success:function(result,status,xhr) { //success }, error: function(result,status,xhr){ if(status== 'timeout') { //timeout } } });
axios.defaults.timeout = 6000;
const instance = axios.create({ baseURL: 'https://some-domain.com/api/', timeout: 1000, headers: {'X-Custom-Header': 'foobar'} });
axios({ method:'get', url:'http://bit.ly/2mTM3nY', timeout:1000, responseType:'stream' }) .then(function(response) { response.data.pipe(fs.createWriteStream('ada_lovelace.jpg')) });