Javascript Fetch和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-->

有人能给我解释一下为什么当我使用fetch并访问我的nodejs api时——它是授权的,但当我尝试使用axios访问我的api时——它是未经授权的

这是我在fetch中使用的代码(来自教程:),因为我正在研究他使用passport facebook令牌进行身份验证的方法

(客户端-->(登录fbsdk-->fb-->(访问令牌)--->客户端-->(通过访问令牌)--->nodejs api-->(获取凭据)--->passport fb令牌-->(发送凭据)--->nodejs api-->(凭据)--->客户端)

这是我的axios的代码

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;
    });
}