Javascript Fetch和Axios之间的区别
有人能给我解释一下为什么当我使用fetch并访问我的nodejs api时——它是授权的,但当我尝试使用axios访问我的api时——它是未经授权的 这是我在fetch中使用的代码(来自教程:),因为我正在研究他使用passport facebook令牌进行身份验证的方法 (客户端-->(登录fbsdk-->fb-->(访问令牌)--->客户端-->(通过访问令牌)--->nodejs api-->(获取凭据)--->passport fb令牌-->(发送凭据)--->nodejs api-->(凭据)--->客户端) 这是我的axios的代码Javascript Fetch和Axios之间的区别,javascript,node.js,axios,passport-facebook,Javascript,Node.js,Axios,Passport Facebook,有人能给我解释一下为什么当我使用fetch并访问我的nodejs api时——它是授权的,但当我尝试使用axios访问我的api时——它是未经授权的 这是我在fetch中使用的代码(来自教程:),因为我正在研究他使用passport facebook令牌进行身份验证的方法 (客户端-->(登录fbsdk-->fb-->(访问令牌)--->客户端-->(通过访问令牌)--->nodejs api-->(获取凭据)--->passport fb令牌-->(发送凭据)--->nodejs api-->
axios({
method: 'post',
url: 'http://localhost:4000/api/v1/auth/facebook',
headers: {
'Access-Control-Allow-Origin': '*',
},
data: {
access_token: response.access_token
}
})
.then((res) => console.log(res))
.catch((err) => console.log(err));
本博客将帮助您获得详细答案: Axios是一个Javascript库,用于从node.js发出http请求 或XMLHttpRequests,它支持Promise API 这是JSES6的固有特性。fetch()的另一个特性是 它执行JSON数据的自动转换 如果使用.fetch(),则在处理JSON时有两个步骤 数据。第一个是发出实际请求,第二个是 对响应调用.json()方法 .fetch()方法是朝着正确的方向迈出的一大步 http请求在ES6中是本机的,但是如果您在那里使用它,就要知道 第三方可能会更好地处理一些问题 像Axios这样的库
您应该将axios配置为在一个中心位置使用您的令牌。比如说
export const configureAxios = (token) => {
axios.interceptors.request.use(req => {
// don't give our token to non-our servers
if (isDomesticRequest(req.url)) {
req.headers.Authorization = `Bearer ${token}`;
}
return req;
});
}
上面的代码来自前端谢谢,在axios的授权头中添加令牌非常重要。我在体内传递,这就是为什么我总是得到“未经授权”的反应。
export const configureAxios = (token) => {
axios.interceptors.request.use(req => {
// don't give our token to non-our servers
if (isDomesticRequest(req.url)) {
req.headers.Authorization = `Bearer ${token}`;
}
return req;
});
}