前端项目访问踩坑
问题现象:前端项目打开没有问题,然后输入密码登录的时候没反应,本来应该报错的提示也没有了,就一个红色的小方框。这就很奇怪了,按说开发写好前端代码,然后点击登录会通过接口查询后端接口的数据,但没有。通过鼠标右键的检查也没有看到访问的后端接口,这说明没有访问,一般情况下就是让前端继续检查代码,不过这里的情况并非如此。继续排查
询问了其他的前端,按照他们的意思是nginx里面也要配置访问的后端location,如下所示:
location / {
root /xxx/xxx/xx;
if (!-e $request_filename) {
rewrite ^.*$ /index.html last;
break;
}
index index.htm index.html;
try_files $uri $uri/ /index.html;
}
location /api/ { //这是后端的location
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffer_size 128k;
proxy_buffers 32 128k;
proxy_busy_buffers_size 128k;
proxy_pass http://172.26.20.2:9111/;
}
其实我之前也写过前端,之前没有在nginx里面配置后端的location这一段,所以我对这块有点疑惑,然后现在听了这个前端开发的人员说,这个location配不配需要看情况,像这个项目就需要配置,因为代码里面定义的是访问当前这个域名的后端的/api/接口,这样写有一个好处就是不用解决前后端跨域的问题。当然也可以不在nginx里面写这一段,那么就需要在前端代码里面把访问后端接口的代码写死,但是会出现的问题就是跨域问题。所以你还要解决跨域问题。
所以说这就是两者的区别。
配置好之后,就出现了下面正常的页面了