Ionic2实战-跨域问题处理

前言

跨域问题产生的原因是浏览器出于保证前端数据安全的目的,以域名作为分割,让各个域名之间不能互相访问。而实际情况下我们又有很多场景需要访问不同域的资源,所以就出现了跨域问题。

所以,只有在浏览器中会出现跨域问题,打包成APP以后已经不再是浏览器的环境,就不存在跨域问题。

我们本次要解决的也是Ionic2 APP网页版的跨域问题。

解决方案

  • 方案一:后端支持跨域(跨域资源共享CORS)
    只需要在后端返回给前端的Http响应头中添加说明,表示该响应支持跨域资源共享,则前端可以在不做任何修改的情况下支持跨域,这也是我觉得处理跨域问题目前最通用的办法。详细的后端写法见:http://www.ruanyifeng.com/blog/2016/04/cors.html

如后端为Java Servlet,则在response中添加支持跨域的协议,如为Spring-Boot,则写法为:

image.png
  • 方案二:使用代理

如下图,可以在前端ionic.config.json文件中配置请求代理,图中的配置含义为所有path包含“app”的请求都发送到地址“http://localhost:8900/app”,注意后端地址的域名即为http://localhost:8900

然后用ionic serv启动项目,则也不存在跨域问题。该方法的原理是通过ionic-cli内置的调试server代理了项目发出去的请求,以我们指定的域名发送。

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是跨域? 2.) 资源嵌入:、、、等dom标签,还有样式中background:url()、@font-fac...
    电影里的梦i阅读 2,394评论 0 5
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,926评论 25 709
  • 前言 原文地址:前端跨域总结 博主博客地址:Damonare的个人博客 相信每一个前端er对于跨域这两个字都不会陌...
    秦至阅读 1,423评论 4 51
  • 贵州茅台又又又创历史新好了,2001年上市市值78亿,至2017年分红超过400亿,市值突破5000亿。不看分红超...
    严小松阅读 296评论 0 0
  • 我目光看到的是我身边周围的事,心里想的却是和自己毫无关系的事。 我应该看到和自己毫无关系的事,心里想的应该是我身边...
    一只不学无术的猴阅读 132评论 1 1