加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

jsonp跨域同步问题解决思路

发布时间:2020-12-16 18:48:16 所属栏目:百科 来源:网络整理
导读:使用jsonp技术可以解决跨域,由于jsonp本身特点所以不能同步执行,也就是说如果有多个jsonp请求会异步执行,如果多个jsonp之间存在依赖关系,就必须要求顺序执行。这里提供两种解决思路: 1、在前一个jsonp返回成功后再执行第二个请求; 2、对于所有的页面的
 
使用jsonp技术可以解决跨域,由于jsonp本身特点所以不能同步执行,也就是说如果有多个jsonp请求会异步执行,如果多个jsonp之间存在依赖关系,就必须要求顺序执行。这里提供两种解决思路:
1、在前一个jsonp返回成功后再执行第二个请求;
2、对于所有的页面的业务请求都要依赖的jsonp请求,当请求这个jsonp成功后把数据放到缓存localStorage里面,并立即刷新当前页面location.reload();如果不这样第一次展示的页面会有问题,总要手动刷新一下才会处理正常的业务请求。
针对第二种情况举个例子:
所有的请求都依赖获取所有的子系统域名jsonp请求,这个时候获取子系统域名的请求处理方法。
/**
 * 获取所有交易所的的子系统域名
 */
function getSubSystemsAllExchange() {
	var subSystemsAllExchangeStr = localStorage.getItem("subSystemsAllExchange");
	if(null == subSystemsAllExchangeStr || "undefined" == subSystemsAllExchangeStr) {
		//注意第一个url要写死,需要根据不同的环境做配置
		jQuery.getJSON(getSysUrl() + "/mobile/subSystem/allSubSystems.htm?callback=?",{},function(result) {
				if(result.code == "success") {
					//debugger;
					//转换成字符串存储
					localStorage.setItem("subSystemsAllExchange",JSON.stringify(result.data));
					subSystemsAllExchangeStr = localStorage.getItem("subSystemsAllExchange");
					//document.URL=location.href;
					//请求完成后页面强制刷新,解决jsop同步问题
					location.reload();
				}
			});
	}
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读