随着多年的不断尝试与实践,越来越多的专家认为,前后端分离已经成为中大型软件项目开发的最佳方式。
在技术层面,前后端分离指在同一个Web系统中,前端服务器和后端服务器采用不同的技术栈,利用标准的WebAPI完成协同工作。在这种前后端分离的“混合开发”模式下,前后端通常会部署到不同的服务器上,即便部署在同一台机器,因为宿主程序(如后端用Tomcat,前端用nginx)不同,端口号也很难统一。
(图片来源网络)
这就意味着位于A域(如https://foo:80/website
)
的页面,需要调用B域的WebAPI(如https://bar:8080/webservice
),形成典型的跨域访问,而浏览器通常会默认会判定该操作有安全风险。如果我们不进行处理,系统则会拒绝这次WebAPI调用,提示对应的错误。
(跨域请求导致的错误)
那么,当前该如何解决跨域的问题呢?我们为您提供以下4个主流技术方案:
JSONP
如果你需要处理的请求只有GET,可以考虑JSONP。
JSONP的原理就是利用\