是的,使用axios
是个好主意,因为它的回购协议是维持的.
您可以使用全局配置进行此操作
import axios from 'axios';
axios.defaults.baseURL = 'https://api.example.com';
axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
或者best方法是为此创建单独的instances
(如果您同时使用multiple api
)
import axios from 'axios';
var myApi = axios.create({
baseURL: 'https://my-domain.com/api/',
timeout: 1000,
headers: {'X-Custom-Header': 'CustomHeader1'}
});
// another api service
var amazonApi = axios.create({
baseURL: 'https://amazon-domain.com/api/',
timeout: 2000,
headers: {'X-Custom-Header': 'CustomHeader2'}
});
export default {
myApi,
amazonApi
}
所以你可以单独使用api
而不产生任何冲突.
如果您正在设置auth header,最好不要在实例创建时设置它,而是可以在ready callback
中设置它,这样您就可以从localStorage
获取或从第三方获取并设置它.
创建后更改标题的步骤
myApi.defaults.headers.authorization = 'JWT ' + yourToken;
所以你可以从任何部分设置头,当你确定你有令牌,然后你可以使用这个代码来设置头.