跨域问题,是因为浏览器同源策略,页面从一个域发起另一个域的异步ajax请求时,不被认可导致。
如果我们的请求在一个域里面,那么浏览器就会认为是安全的,就不会造成跨域,而nginx服务器非常擅长做这个代理工作。虽然是两个域上的请求,但是,我们可以利用nginx,将本域的部分请求转发到另一个域上,就解决了跨域,所有的请求都在一个域里面,浏览器自然认可。
以前,通过服务端解决跨域问题的时候,都是两个域的请求,比如页面是http://localhost/ajax-cors.html,而ajax异步请求是另一个域:http://localhost:8080/ajaxcors/test,服务端设置之后,跨域问题得到解决。
现在通过nginx反向代理,所有的请求都变成了一个域的请求,只不过我们根据url的不同,将某些请求转发到别的域。
示例:
springboot做ajax请求接口服务端:
maven依赖:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>