1
回答
layui文件上传upload跨域回调问题解决方案
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

最近在开发一个项目,项目是由api接口端和页面展现端组成的,也就是api接口和页面是不同子域名。如:api.abc.com和admin.abc.com。
在使用layui的upload组件时遇到了跨域问题,上layui的github查看了源代码,发现upload的组件是用iframe提交,然后获取iframe中body内容来实现获取回调的。这就难办了,就算后端支持了跨域,浏览器也不支持跨域iframe操作的。
我去layui社区搜了一下, http://fly.layui.com/jie/8919.html ,不过我觉得有被XSS攻击的可能性。于是,针对我现在项目的架构,在layui网友提供的解决方案的基础上改良了一个好用的解决方法,供大家参考使用。
我的思路是这样的:
接口端,请求处理完成后,将结果存储到数据库或者redis中,设定一个数据有效期,生成一个token。开发一个根据token获取数据的接口,获取完数据后立即删除。在请求处理完成并存储数据后,header('location:http://admin.abc.com/xxx')到页面展现端的接口,附带一个token参数。
页面展现端,这个接口根据传过来的token,再请求token获取数据的接口,输出内容。
这样比直接通过get参数回调返回处理结果要好,可以防止xss攻击。
这个方法首发在了我的博客(前后台都用上了layui[嘻嘻] ): http://blog.yurunsoft.com/a/42.html

举报
宇润
发帖于8个月前 1回/981阅
顶部