前后端项目部署问题!前端vue后台springboot

1.问题描述第一版本:第一次部署的时候,我本地和我的笔记本电脑都能访问到!第一次部署我就是把vue项目部署到tomcat,然后后台就是直接在idea中运行。当然,数据库地址我用的不是localhost,而是我的ip地址。然后我使用我的主机访问,没问题!再打开我的笔记本访问。也没问题!然后我让我一起住的朋友连不行。(比如:我的ip地址是192.168.4.5 vue部署在tomcat里的文件夹名字叫front-vue-server) 端口号是9000:那么地址就是192.168.4.5:9000/front-vue-server 是吧!然后确实就我的主机和我的笔记本能访问到!
2.问题描述第二版本:后来我又改成这样去试了一下:就是使用别人说的内网穿透。比如下面这样。
img

然后我使用 http://pebq83.natappfree.cc/front-vue-server%E5%8E%BB%E8%AE%BF%E9%97%AE%EF%BC%8C%E6%9C%AC%E5%9C%B0%E6%98%AF%E6%B2%A1%E6%9C%89%E9%97%AE%E9%A2%98 我让我别的地方的朋友连接试了一下。这次效果要好了!我朋友能访问到前端的项目了。但是没有后台的数据! 这次部署的跟上面一样,只是去加了个网上说的内网穿透!vue项目部署在本地电脑的tomcat里。后台springboot项目没有直接部署,是在本地电脑运行。

3.请问一下各位!这个问题是什么原因?

应该是跨域问题,你看下接口访问的地址是否是403了

你买个服务器就没这些问题了

不在同一个局域网肯定访问不了你的本地项目,需要别人能ping通你本地的ip才能访问你本地的项目啊

你思考下是不是跨域问题,你的Vue项目部署的在9000,你的接口也就是后端数据的端口是多少呢?端口不同说明出现同ip不同端口的跨域问题了。

就是你的Vue项目是在9000端口上,那么你的朋友进入页面看到内容,说明现在他的位置在你的ip的9000端口,现在他读取你Vue项目里面的代码,注意,如果你代码里的请求是请求了不同域名或不同端口的内容,那么就跨域了,他读取不到。

想要读取到,我用的是nginx处理,你得修改你Vue文件里面的请求部分的代码,改成和你部署的同ip同端口,跟在你端口后面有个具体请求,比如是/api,你可以用nginx将你ip的9000端口指向你Vue打包好的文件的入口,然后最关键的就是给这个端口的/api请求配置一个代理,让他在你的9000端口发送/api请求时转发到别的地方去,也就是你朋友以为自己还是在向9000端口要数据,因为他在9000端口又在9000端口要数据,没有跨域,然后nginx已经做了对/api这个请求的代理,它一看到代理的内容,就会将它的9000端口的/api请求转发给你要代理的端口即后端端口,它虽然要的还是9000端口的数据,但是拿到的却是代理的端口给他的数据,就解决跨域了。

按道理你做完内网穿透,前端能访问到,那一定能获取后端数据,因为前端和后端是在同一个局域网下。
下图是外网穿透内网以及内网之间通信的逻辑,希望对你解决问题有帮助

img
你现在得确认,你本地前端是否能访问后端数据。

核心在于,你没明白部署的道理,
当你知道如何部署vue项目和springboot项目的时候,
你就会意识到,哇
这个多么简单

没有服务器,用本地tomcat服务器时,想让其他人访问的到,就用内网穿透: 钉钉内网穿透(tcp)---Windows---有效_xd_b9999的博客-CSDN博客 钉钉的内网穿透:1.先去钉钉github项目地址下载该项目(https://github.com/open-dingtalk/pierced)image.png2.解压你下载的文件到e盘:3.打开window电脑的命令行窗口(win+r)输入cmd,回车即可。4.执行命令, 切换到d盘e:5.执行命令,切换到钉钉目录下:cd e:\pierced-master\windows_646.执行启动命令ding -config=ding.cfg -subdomain=lian.. https://blog.csdn.net/xd_b9999/article/details/115694576
如果vue发了请求,后台没反应,可能请求路径出错,不然就是跨域问题