前端项目:
.env配置
# API
VUE_APP_BASE_API = '/prod-api'
前端不做代理,由nginx来做代理。
浏览器看到的请求地址如下:
http://localhost:9000/prod-api/**
请问:前面的“http://localhost:9000”是前端代码加的吗?axios加的?还是nginx加的?
前端项目:
.env配置
# API
VUE_APP_BASE_API = '/prod-api'
前端不做代理,由nginx来做代理。
浏览器看到的请求地址如下:
http://localhost:9000/prod-api/**
请问:前面的“http://localhost:9000”是前端代码加的吗?axios加的?还是nginx加的?
axios加的,毕竟一个资源连接是由协议
+域名/地址
+端口
+路径
组成的.
你是想让前端请求你的nginx服务器?
那你就在配置axios的时候,加上baseurl这个配置项
这时候axios就会给你加上你期望的nginx地址了
不然,就是地址栏上的协议
+域名/地址
+端口
15 回答8.4k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
4 回答1.8k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
感谢各位的帮助,给了我很多支持。
这个问题最终看了axios的源码包。
axios对于http://域名+端口+接口串正常解析,对于/api/+接口串,善良的axios会帮助我加上前面的http://域名+端口,增加内容为当前服务的域名+端口。
所以:针对配置如上的情况,http请求有善良的axios给我加http://域名+端口。但是websocket却不会做多余的事情。
所以善良的axios迷惑了我,让我对nginx配置的无法放下,掉进了错误的坑里。
axios源码处:
axios/lib/helpers/isURLSameOrigin.js