如何在 axios 中创建动态 baseURL
How to make a dynamic baseURL in axios
假设我在给定服务中定义了 baseURL
,如下所示:
import axios from 'axios'
const myAPI = axios.create({
baseURL: 'https://api.domaine.com/',
withCredentials: false,
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
}
})
export default {
getUsers(){
MyAPI.get('/users?order=desc&sort=name');
},
getUser(id){
MyAPI.get('/users/'+id+'?order=desc&sort=name');
}
....
}
在此示例中,每个请求都会重复 ?order=desc&sort=name
如何将其添加到基础 URL 并使其动态化,如:
baseURL: 'https://api.domaine.com/%s?order=desc&sort=name',
其中 %s
可以替换为 '/users/'+id
或 '/users/'
,可能像这样或者有任何其他方法来解析 URL 以使其动态化?
您应该可以使用参数字段,即:
const myAPI = axios.create({
baseURL: 'https://api.domaine.com/',
withCredentials: false,
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
},
params: {
order: 'desc',
sort: 'name'
}
})
Fiddle:https://jsfiddle.net/kquvw0jy/(检查控制台网络选项卡以查看请求)
假设我在给定服务中定义了 baseURL
,如下所示:
import axios from 'axios'
const myAPI = axios.create({
baseURL: 'https://api.domaine.com/',
withCredentials: false,
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
}
})
export default {
getUsers(){
MyAPI.get('/users?order=desc&sort=name');
},
getUser(id){
MyAPI.get('/users/'+id+'?order=desc&sort=name');
}
....
}
在此示例中,每个请求都会重复 ?order=desc&sort=name
如何将其添加到基础 URL 并使其动态化,如:
baseURL: 'https://api.domaine.com/%s?order=desc&sort=name',
其中 %s
可以替换为 '/users/'+id
或 '/users/'
,可能像这样或者有任何其他方法来解析 URL 以使其动态化?
您应该可以使用参数字段,即:
const myAPI = axios.create({
baseURL: 'https://api.domaine.com/',
withCredentials: false,
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
},
params: {
order: 'desc',
sort: 'name'
}
})
Fiddle:https://jsfiddle.net/kquvw0jy/(检查控制台网络选项卡以查看请求)