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(); } }); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- CODEGEN: 参数“GetDataResult”需要其他方案信息,使用参数
- FLASH连接数据库
- react setState 的回调函数
- 使用dsc_extractor.bundle插件时,Xcode意外退出
- postgresql – 在顶级引发的错误:Fluent.EntityError.noDa
- <转+备份>Cocos2d-x精灵加亮及灰度调整
- c# – 如何通过其“名称”调用方法?
- 火云开发课堂 - 《使用Cocos2d-x 开发3D游戏》系列 第八节:
- Open Flash Chart 'reload' 未定义 和 IE中的缓存问
- 发布一个关于CoreGraphicFramework练习的demo