【问题标题】:I keep getting a 400 error when i am using createAsyncThunk and axios我在使用 createAsyncThunk 和 axios 时不断收到 400 错误
【发布时间】:2022-11-26 16:24:24
【问题描述】:

大家好,我不知道是否有人可以帮助解决这个问题,但是每当我尝试发布某些内容时使用 createAsyncThunk 和 Axios 时,我都会收到 400 错误。我知道这意味着这是一个糟糕的请求,但我不知道为什么我会收到它。这是我的代码

const API_URL =
  'https://us-central1-bookstore-api-e63c8.cloudfunctions.net/bookstoreApi/apps/sppWoQdq6XBTog313fKt/books';

export const defaultState = [];

export const getBooks = createAsyncThunk(GET_BOOKS, async () => {
  const response = await axios.get(API_URL);
  return response.data;
});

export const addBook = createAsyncThunk(ADD_BOOK, async (book) => {
  const response = await axios.post(API_URL, book);
  return response.data;
});

export const removeBook = createAsyncThunk(REMOVE_BOOK, async (book) => {
  const response = await axios.delete(`${API_URL}${book.id}`);
  return response.data;
});

export const bookSlice = createSlice({
  name: 'books',
  initialState: defaultState,
  extraReducers: (builders) => {
    builders.addCase(getBooks.fulfilled, (action) => action.payload);
  },
});

export default bookSlice.reducer;

我已经尽我所能来理解为什么我会收到这个错误不同的 api 不同的代码我不知道问题是什么

【问题讨论】:

  • 尝试添加 Content-Type: application/json 标头?有时服务器无法识别没有该标头的 json
  • 嘿@AndreyBessonov 该代码看起来如何?
  • 添加示例作为完整评论

标签: javascript react-redux


【解决方案1】:

您可以尝试强制 json 标头:

axios.post(API_URL, book, {headers: {'Content-Type': 'application/json'}})

【讨论】:

  • 嘿@AndreyBessonov 它没有用,但我感谢你的帮助!我仍然在帖子上收到 400 错误和 axios 的未捕获(承诺)
猜你喜欢
  • 2021-07-05
  • 2019-04-20
  • 2021-12-14
  • 2020-08-02
  • 1970-01-01
  • 2018-03-05
  • 1970-01-01
  • 2021-11-16
  • 1970-01-01
相关资源
最近更新 更多