前端项目线上如何做跨域

前端项目线上如何做跨域

前端页面被跨域限制了,说明不同源。 这个时候可以找一台跟后台接口同源的服务器用 nginx 来做接口转发。

以一个 vue 项目为例,在开发过程中,开发者可以主动去配合 dev 的 proxyTable, 本质上是本地起了一个 node 服务(express)来做转发到 localhost, 因为跨域是会存在于浏览器。 而发布到线上去之后,很可能由于 dev 环境下对每一个接口请求都携带了 /api 前缀,这对我们很友好。

nginx 配置:

...
location /api {
    # 配置一
    proxy_pass http://abc.hahah.com/;
    # 配置二
    proxy_pass http://abc.hahah.com;
    # 配置三
    proxy_pass http://100.200.30.20;
}
...

其中配置二和配置三,本质上是一样的(使用 ip 和域名)ip 后面有没有 / 是由区别的,有 / 表示转发请求之后,/api 后面的内容才会被转发,相当于 url 是被截断的,正好我们需要这种形式,因为 /api 是我们添加的虚拟的 url 部分。

详情可以参考 https://www.cnblogs.com/lemon-le/p/7800879.html 或者 《nginx 高性能 Web 服务器详解》

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

推荐阅读更多精彩内容

  • 什么是跨域?跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。 广义的跨域: 资源跳转: ...
    薛定谔的盯裆猫阅读 1,299评论 1 38
  • 在项目的开发中经常遇到所谓的跨域问题。最近也是遇到了这个问题,并且花了很多时间来解决这个问题。下面就来带大家一起看...
    侯工阅读 1,385评论 0 20
  • 什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。 广义的跨域: 其实我们通...
    CodeMT阅读 258评论 0 2
  • 用户/客户: toC的购买者、使用者、受益者都是一个人。 toB购买者是老板,使用者是员工,受益者是企业。 用户关...
    阿脸阿脸阅读 1,298评论 0 1
  • 晚上第二节自习下课后,我下了楼梯准备会宿舍去,一名同学过来说有同学违反纪律,上课的老师要我过去去看一下。 原来,两...
    amazing2017阅读 565评论 2 1