龙空技术网

前后端分离后的跨域问题可以尝试用这两种方式解决无需修改代码

聊推 978

前言:

此时同学们对“nginx跨域代理转发”大致比较讲究,你们都想要了解一些“nginx跨域代理转发”的相关内容。那么小编在网上汇集了一些对于“nginx跨域代理转发””的相关文章,希望大家能喜欢,姐妹们快快来了解一下吧!

由于浏览器的同源策略限制,所以会出现跨域的问题。同源策略是一种约定,它是浏览器最核心也最基本的安全功能。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(比如http和https就是不同协议),主机(域名或者IP地址)和端口号

之前有用jsoap处理跨域的问题,下面推荐两种比较主流的方式

前端代码打包到后端服务的项目中

前端以Vue.js为例,后端以SpringBoot为例

首先前端项目打包

cd 项目根目录npm install 安装Vue.js的依赖npm run build 编译打包前端项目

编译完成后,项目根目录会多出一个dist的文件夹,文件夹内就是完整的前端项目

后端打包

然后在后端项目src目录下建立webapp的文件夹,将前端项目的dist文件夹内的所有内容拷贝到webapp内(温馨提示放入resources目录也可以,我们为了好区分就新增一个目录)

pom.xml加入下面resources这样的配置,这样打成jar包时就可以引入webapp内的内容

<build>

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

</plugins>

<!--打成jar包时引入webapp-->

<resources>

<resource>

<!-- 指定resources插件处理哪个目录下的资源文件 -->

<directory>src/main/webapp</directory>

<!--注意此次必须要放在此目录下才能被访问到 -->

<targetPath>META-INF/resources</targetPath>

<includes>

<include>**/**</include>

</includes>

</resource>

</resources>

</build>

Nginx转发

有些项目前后端需要彻底分离部署,这时候可以依赖Nginx神器做代理转发我们的前端请求

把前端项目dist(可以随意改名哈)放到Nginx或者tomcat,然后在Nginx的配置文件nginx.conf增加一个配置作为转发即可

location /houtai/ {

proxy_pass 后台接口地址;

tcp_nodelay on;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

location /houtai/,这个配置后台作为前端请求后台接口的根路径即可,Nginx只要匹配到这个根路径就会转发到proxy_pass;

标签: #nginx跨域代理转发