如何在 React-Redux 应用程序中修复 431 请求标头字段太大

新手上路,请多包涵

我正在通过使用 Redux 的 youtube 上的 MERN 注册/登录身份验证教程。当尝试在 Postman 中将测试用户发布到服务器时,我收到 431 标头请求太大错误响应。

我在某些地方读到清除浏览器中的缓存/历史记录是可行的,所以我尝试过但无济于事。我还在标题请求中添加了一个“Clear-Site-Data”:“*”条目(除了“Content-Type”:“application/json”),它也不起作用。

用于注册的客户端代码

  onSubmit = e => {
    e.preventDefault();
    const { name, email, password } = this.state;

    const newUser = {
      name,
      email,
      password
    };

    this.props.register(newUser);
  };

//redux actions
export const register = ({ name, email, password }) => dispatch => {

  const config = {
    headers: {
      "Content-Type": "application/json",
      "Clear-Site-Data": "*"
    }
  };

  // Request body
  const body = JSON.stringify({ name, email, password });

  axios
    .post('/api/users', body, config)
    .then(res =>
      dispatch({
        type: REGISTER_SUCCESS,
        payload: res.data
      })
    )
    .catch(err => {
      dispatch(
        returnErrors(err.response.data, err.response.status, 'REGISTER_FAIL')
      );
      dispatch({
        type: REGISTER_FAIL
      });
    });
};

注册用户应该向我连接的 Mongo db 发送名称、电子邮件和密码,但是,它停止了我并且 redux 命中了我创建的 REGISTER_FAIL 类型,返回 431 错误。任何帮助将不胜感激。谢谢!

原文由 Brent Abruzese 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 602
1 个回答

我在我的 Angular 应用程序中遇到了同样的问题。花了很多时间后,我发现问题与 Node JS 有关。我们使用的是 Node JS v12.xx,在这个版本中,max-http-header-size 从 80KB 减少到 8KB。我拥有的授权令牌大约为 10KB。这就是为什么当我重新加载应用程序时,浏览器开始为某些文件提供“431 请求标头字段太大”错误。我已经更新了 Node JS v14.xx,它又开始工作了,因为在 v14.0.0 中,max-http-header-size 已经增加到 16KB。

希望它会有所帮助。

原文由 Gourav Kajal 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进