有些公司出于安全考虑,会有多台服务器。当第一台服务器请求有问题会转移第二台、第三台发送请求,类似于故障转移。
今天遇到一个需求,ajax的请求地址不是一个而是三个,这就要求在ajax请求的时候配置三个地址,在第一个地址调用失败,调用第二个、第三个地址
思路:定义一个变量计算请求失败的次数, 在请求失败的时候再调用自身并传入对应的url地址参数, 改掉url, 然后再重新请求
var ajaxUrl = { defaultService:‘http://xx.xx.xx.2:10001‘; //默认服务器地址 service1:‘http://xx.xx.xx.3:10001‘; //第二台服务器地址 service2:‘http://xx.xx.xx.4:10001‘; //第三台服务器地址 }; var errorCount = 0; function getMerchantPUb(getUrl = ajaxUrl.defaultService){ $.ajax({ type:"post", url:getUrl+"/parking/searchPublicKey", headers: {‘Content-Type‘: ‘application/json‘}, data:parkingId, success:function(data){ //成功后的操作 }, error: function(data,type){ errorCount++; /*第一次调用失败*/ errorCount ===1 && getMerchantPUb(ajaxUrl.service1) /*第二次调用失败*/ errorCount ===2 && getMerchantPUb(ajaxUrl.service2) console.log("错误类型是:"+type); console.log(data) } }); }