首页 > 解决方案 > 为什么我的代码中出现“GET/304 --”?(vue.js,快递)

问题描述

当我使用 axios 在客户端(vue.js)上请求数据时,我在服务器端收到错误代码“GET/304 --”

但我不知道为什么会发生这种情况以及如何解决这个问题或如何解决这个问题。

如果我在客户端删除有关“axios”的代码,则不会出现该错误。请有人可以帮助我。

下面的代码:

客户端

  created() {
    axios
      .get("http://localhost:4000/")
      .then(
        result => (
          (this.greeting = result.data.greeting),
          (this.greeting2 = result.data.greeting2)
        )
      );
  }

服务器端

export const getHome = async (req, res) => {
  let user;
  if (req.headers.authorization !== undefined) {
    try {
      user = auth.verify(req.headers.authorization);
      user = await models.User.findOne({
        where: { id: user.id }
      });
    } catch (err) {
      console.log(err);
    }
  } else {
    user = null;
  }
  const name = user ? user.name : 'Please LOGIN';
  res.json({ greeting: `Welcome to Chat N Chill`, greeting2: name });
};

auth.verify 服务器端的代码

  verify(token) {
    return jwt.verify(token.replace(/^Bearer\s/, ''), SECRET_KEY);
  }

标签: javascriptnode.jsexpressvue.js

解决方案


Express 将自动将状态代码设置304为以下请求fresh

https://github.com/expressjs/express/blob/e1b45ebd050b6f06aa38cda5aaf0c21708b0c71e/lib/response.js#L206

该属性fresh在此处定义:

https://github.com/expressjs/express/blob/e1b45ebd050b6f06aa38cda5aaf0c21708b0c71e/lib/request.js#L467

它记录在这里:

https://expressjs.com/en/4x/api.html#req.fresh

这应该没什么好担心的,它只是意味着响应的内容相对于浏览器已经在其缓存中的内容没有改变。


推荐阅读