【问题标题】:Getting 400 error Bad request using axios使用 axios 获取 400 错误错误请求
【发布时间】:2017-11-27 14:50:42
【问题描述】:

我正在使用 axios 并收到 400 bad request 错误。我正在使用 react-redux 并尝试向 localhost:3000/posts 发送发布请求。这是我正在使用的代码。

import axios from 'axios';
import {
  GET_ALL_POSTS,
  GET_POST,
  CREATE_POST,
  DELETE_POST,
  UPDATE_POST
} from './types';

const ROOT_URL = 'http://localhost:3000';

export function createPost({content, title}, cb) {
  return function(dispatch) {
    axios.post(`${ROOT_URL}/posts`, {content, title})
      .then((response) => {
        console.log(response);
        dispatch({
          type: CREATE_POST,
          payload: response
        });
      })
      .then(() => cb())
      .catch((error) => {
        console.log("Problem submitting New Post", error);
      });
  }
}

【问题讨论】:

  • .catch() 中,记录到控制台的错误的全文是什么?你能从服务器获得任何信息吗?比如,如果你使用 Express,如果你在对 app.post('/posts', (req, res){}) 的调用中使用 console.log(req),你会得到什么?
  • 问题提交新帖子错误:在 XMLHttpRequest.handleLoad (bundle.js:28850) 的结算 (bundle.js:37974) 处的 createError (bundle.js:29014) 请求失败,状态代码为 400错误,如果我 console.log(req) 我什至没有达到这一点。好像什么都没有发送到服务器。 @skwidbreth
  • 嗯——看来你不是第一个遇到这个问题的人。看到这篇文章 - github.com/mzabriskie/axios/issues/376 - 看起来底部可能有一个有用的答案。
  • @skwidbreth 他们似乎没有收到 400 错误,看起来他们正在尝试处理错误处理。由于某种原因,我的数据根本没有发布到服务器上。我认为更改错误的解释方式不会解决我的问题。
  • 它在 wifi 上,一切运行良好。我的服务器说它在端口 3000 上运行,而我的客户端在 8080 上使用 webpack 运行。我可以向我的 localhost:3000/signin 发出发布请求,但是当涉及到 /posts 时,如果我控制台,它会给我一个错误的请求.log(error.response.data) 在 catch

标签: reactjs redux axios


【解决方案1】:

我也收到此错误,问题不在于服务器或 axios 或代理 url。 问题是我没有从我的反应应用程序发送正确的数据。 例如 我应该发送: { email: 'ib2@gmail.com', password: 'asdf' }

我发送的是: { name: 'ib2@gmail.com', password: 'asdf' }

这导致 api 不理解名称字段,因为我在 api 中提供了电子邮件作为键。

因此,如果您仍然遇到问题,请尝试检查您发送的数据是否正确。

【讨论】:

    【解决方案2】:

    对于每个 post 请求,客户端首先发送一个 OPTIONS 请求来检查服务器是否准备好接受连接。您还应该允许服务器接受选项请求。如果您不允许在节点服务器的情况下使用以下行

    app.use(function(req, res, next) {
       res.header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS');
          next();
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-19
      • 1970-01-01
      • 2020-11-19
      • 1970-01-01
      • 2020-02-14
      • 2013-06-30
      • 2020-05-24
      • 1970-01-01
      相关资源
      最近更新 更多