


比如本地测试的时候直接请求 https://ai.tnblog.net/ 这个地址会跨域。我们可以使用nginx来解决这种跨域的问题。
使用nginx加一点配置
#自定义本地路径
location /apis/ {
proxy_pass https://ai.tnblog.net/;
}
这个意思就是说请求nginx的端口+/apis/。它就会把请求转发到https://ai.tnblog.net/ 这个地址去。比如我们nginx设置的启动端口是8080,那我们请求http://localhost:8080/apis/connect/token 这个地址就不会出现跨域了。配置要特别注意加不加斜杠的问题哦,稍微不注意就会出现404问题。
后面的connect/token就无所谓了,只要前面的域名这块跨域就行。相当于我们请求http://localhost:8080/apis/connect/token 这个地址,其实就是请求的
https://ai.tnblog.net/connect/token 这个地址。
后面还需要这个域名下的其他接口,只需要把https://ai.tnblog.net/ 地址使用过http://localhost:8080/apis/ 这个地址去替换即可。比如我们还需要调用一个https://ai.cqzuxia.com/oss/api/SmartFiles/UpLoadFormFile 这个接口,使用nginx解决跨域后我们就使用http://localhost:8080/apis/oss/api/SmartFiles/UpLoadFormFile这个地址去调用
这样就可以借助nginx去实现跨域了,也非常简单。把需要请求这个接口的页面通过nginx去访问,本地访问本地肯定不会出现跨域,然后nginx去请求这个接口也不会出现跨域,所以就可以解决跨域了。
其实就像使用core项目来解决跨域一样,页面访问core后台,core后台去调用其他网站接口,这样就解决跨域了(在后台直接使用httpclient请求接口是不会跨域的),nginx就可以简化这样一个过程。
另外一个配置示例
比如前端项目是8006端口,后端项目是8003端口,我们前端项目去访问接口,请求的是
http://106.14.25.58:8006/api/home/1 ,我们需要代理后真实请求的地址是http://106.14.25.58:8003/api/home/1
配置方法1:
#自定义本地路径
location /api {
proxy_pass http://106.14.25.58:8003;
}
配置要特别注意加不加斜杠的问题哦,稍微不注意就会出现404问题。比如这种配置下面的proxy_pass后面就不能加斜杠,不能写成http://106.14.25.58:8003/, 写成这种就会报404
配置方法2:
#自定义本地路径
location /api/ {
proxy_pass http://106.14.25.58:8003/api/;
}
这种写法后面的代理地址就需要加上api了,感觉这种写法它是把http://106.14.25.58:8006/api/
home/1,前面标红这一堆全部替换成http://106.14.25.58:8003/api/
,替换后最终就变成了我们需要请求的地址http://106.14.25.58:8003/api/home/1
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)