1.出现跨域的表现:

项目的前端调用后台接口时候,会报错:

No ‘Access-Control-Allow-Origin’ header is present on the requested resource

2.出现跨域的原因

前端项目是在本地运行的,但是在调用接口时候,接口的地址是其他域名及端口下的地址,此时就会出现跨域问题。

3.如何解决跨域问题:(使用nginx解决跨域问题)

要点先知:

在使用nginx之前先要明确一下的几个概念:

  • 前端项目,后端项目,以及nginx,这就是三个serve项目,它们只是互相之间交流数据;
  • 三个项目都有自己的ip:port组合,哪怕你是在同一台服务器上启动这三个server,它们的port也是不可能有一样的;
  • 所以,前端项目,不论访问nginx还是访问后端项目,都会产生跨域问题。

(1)首先要安装nginx

在官网进行安装,地址是http://nginx.org/en/download.html,然后选择第二个稳定版本,下载即可。
下载完,解压后即可得到如下目录:
主要的配置文件在文件夹conf的nginx.conf中,想要解决跨域问题就得在此处进行配置。

(2)熟悉简单常用的nginx命令

这些命令需要在cmd端切换到 安装nginx的目录下 进行

start nginx        #  启动nginx   --启动的时候,有一个终端会闪退说明启动成功
nginx.exe  -s  reload     # 修改配置后需要重启才生效
nginx.exe -s  quit     # 关闭nginx

第一步,要启动nginx,启动成功后,访问 localhost:8088,可以看到下面这个界面:
此处为什么是locahost:8088呢,这个配置在nginx.conf 中,如下:
当你下载完打开后默认的配置是80端口,如果该端口被占用的话,你可以配置其他未被占用的端口,比如我这里就是8088,

(3)nginx.conf文件配置

目前各个环境下的域名和端口号情况:本地项目在运行的时候,访问的地址是http:loaclhost:3000,用的是3000端口号,配置nginx使用的是8088端口号,也就是http://localhost:8088,我希望http://localhost:3000可以访问到http://test.abc.com这个域名下的接口(可以理解为要调用的一系列接口的公共前缀部分),如果没有通过nginx中转的话,访问时报跨域错误。那该如何解决呢:

  1. 配置nginx.conf文件

    补充:
    第一大方块:nginx的访问端口可以修改为没被占用的其他端口,这里设置nginx的访问路径是 http://localhost:8088

    第二大方块:注意这里需要添加 proxy_pass 为本地运行的项目地址 http://localhost:3000 !!! 当访问 http://localhost:8088 的时候,location会匹配 ’ / ’ 到文件夹根目录下的index.html文件,但这里添加 proxy_pass 后,访问 http://localhost:8088 的时候会代理到 http://localhost:3000,而且你的访问路径显示的还是 http://localhost:8088 ,内容是 http://localhost:3000的

    第三大方块:这里location匹配的是 访问 http://localhost:8088/api/.* 路径的时候,在proxy_pass填上需要用到的外域api地址 http://test.abc.com/ ,此时就相当于访问:
    http://test.abc.com/ .* ,但实际上显示在你眼前的还是原来路径: http://localhost:8088/api/.* ,只是你访问这个原路径的时候nginx自动帮你代理到你想要访问的api路径 。但这里有个很重要的细节需要注意: 匹配路径 /api/ 和代理路径 http://test.abc.com/ 后面的斜杠统统都不能少!!!任何一个少了都不行,不信试试,这是nginx的规则。


修改完 nginx.conf 文件后,需要重启nginx ,才会生效 !!!


  1. 本地项目配置和访问方式:
    在本地项目中,访问接口时,以 /api/.* 这样的格式,然后运行本地项目后(需要先运行),访问 http://locallhost:8088地址,而不是http://localhost:3000。

    直接访问http://localhost:3000不会通过nginx中转,而访问http://localhost:8088通过nginx解决了跨域问题。

资料来源:地址一:https://blog.csdn.net/aodongni1633/article/details/101296692

地址二:https://blog.csdn.net/fy_java1995/article/details/103118671

nginx反向代理解决跨域请求问题相关推荐

  1. 通过nginx反向代理解决跨域

    先写一个发送跨域请求的页面index.html <html> <head><title></title> </head> <body& ...

  2. 利用nginx 反向代理解决跨域问题

    利用nginx 反向代理解决跨域问题 参考文章: (1)利用nginx 反向代理解决跨域问题 (2)https://www.cnblogs.com/hpx2020/p/9928175.html 备忘一 ...

  3. nginx反向代理解决跨域问题,使本地调试更方便

    nginx反向代理解决跨域问题,使本地调试更方便 参考文章: (1)nginx反向代理解决跨域问题,使本地调试更方便 (2)https://www.cnblogs.com/gwf93/p/102951 ...

  4. 使用nginx反向代理发起跨域请求

    任务5:http://www.jnshu.com/task/2/45/detail//#1 页面文件放在github:https://github.com/Resalee/css_task/tree/ ...

  5. nginx解决浏览器跨域问题_前端通过Nginx反向代理解决跨域问题

    在前面写的一篇文章SpringMVC解决跨域问题,我们探讨了什么是跨域问题以及SpringMVC怎么解决跨域问题,解决方式主要有如下三种方式: JSONP CORS WebSocket 可是这几种方式 ...

  6. Nginx 反向代理解决跨域问题

    目录 前言 Nginx 反向代理常用配置 Server location proxy_pass add_header OPTIONS 请求 proxy_set_header 跨域的 cookie 传输 ...

  7. Nginx反向代理解决跨域问题(个人学习总结)

    一.理解Nginx Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行.其特点是占有内存少,并发能力强,事实上nginx的并 ...

  8. 【Nginx反向代理解决跨域】

    跨域 写在前面 当今互联网行业,大部分Web项目基本都是采用的前后端分离模式.前端为H5项目,后端为Java.PHP.Python等项目.而且大部分后端服务并不会只部署一套服务,而是会采用Nginx对 ...

  9. webstorm前端使用Nginx 反向代理解决跨域问题

    1.webstorm设置端口 2. 3. 4. 5. 把项目放到nginx安装目录的html文件夹下: 6. 配置nginx.conf文件 server {listen 8090; #监听端口serv ...

最新文章

  1. (已解决)AttributeError: ‘PrecisionRecallDisplay‘ has no attribute ‘from_predictions‘以及查看sklearn版本
  2. linux文本三剑客,Linux文本处理三剑客之grep
  3. 用Python做科学计算
  4. 个性化推荐之召回的方法
  5. Web前端技术分享:全栈工程师常用的开发工具
  6. p值 t值 统计_非统计师的P值
  7. redis-cluster
  8. LOJ#6038. 「雅礼集训 2017 Day5」远行(LCT)
  9. Unity 使用Shader实现序列帧动画
  10. 阿里icon使用fontclass
  11. 贪心算法-完全背包问题
  12. PE文件格式系列译文之
  13. 每天自我提升的8个好习惯
  14. 高德地图 API,点击地图标记获取自定义标记 (Marker) 中的信息
  15. AFEchidna示例20--自交对方差分量的影响
  16. Hello OsChina
  17. 【朝花夕拾】Android自定义View篇之(六)Android事件分发机制(中)从源码分析事件分发机制...
  18. 编写C语言程序:输入一个n,计算从1到n的和
  19. 设计模式-责任型模式(责任链模式)
  20. gif一键抠图 在线_强力推荐!免费在线的一键抠图神器:AIpix

热门文章

  1. m4a转mp3的方法有哪些?高效的音频转换技巧
  2. 数据可视化|用帕累托图进行数据分析
  3. 【饭谈】在学习测开网课之前,你的心脏需要武装一下
  4. 哪个牌子的蓝牙耳机好?四款好音质蓝牙耳机推荐
  5. Vue2.0进阶组件篇1 教你秒撸(短信倒计时组件)
  6. ios自动化返回键方案
  7. win7 64计算机图标如何设置,Win7 64位系统下如何自定义更改磁盘图标【图文】
  8. VMvare-Win10解决“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的问题
  9. VIRES的开放平台及资源
  10. 关于QQ和360去留的问题