axios 会给 /api/前加当前服务域名吗?

前端项目:
.env配置

# API

VUE_APP_BASE_API = '/prod-api'

前端不做代理,由nginx来做代理。
浏览器看到的请求地址如下:
http://localhost:9000/prod-api/**

请问:前面的“http://localhost:9000”是前端代码加的吗?axios加的?还是nginx加的?


回答:

感谢各位的帮助,给了我很多支持。
这个问题最终看了axios的源码包。
axios对于http://域名+端口+接口串正常解析,对于/api/+接口串,善良的axios会帮助我加上前面的http://域名+端口,增加内容为当前服务的域名+端口。

# API

VUE_APP_BASE_API = '/prod-api'

所以:针对配置如上的情况,http请求有善良的axios给我加http://域名+端口。但是websocket却不会做多余的事情。

所以善良的axios迷惑了我,让我对nginx配置的无法放下,掉进了错误的坑里。

axios源码处:
axios/lib/helpers/isURLSameOrigin.js


回答:

axios加的,毕竟一个资源连接是由协议+域名/地址+端口+路径组成的.
你是想让前端请求你的nginx服务器?
那你就在配置axios的时候,加上baseurl这个配置项
这时候axios就会给你加上你期望的nginx地址了
不然,就是地址栏上的协议+域名/地址+端口


回答:

浏览器加的

axios 会给 /api/前加当前服务域名吗?

https://developer.mozilla.org/zh-CN/docs/Learn/Common_questio...


回答:

浏览器加的。如果有配置另一个地址做代理,直接写完整的代理地址VUE_APP_BASE_API = http://www.xxxx.com/prod-api

以上是 axios 会给 /api/前加当前服务域名吗? 的全部内容, 来源链接: utcz.com/p/934009.html

回到顶部