axios.post 显示错误“请求失败,状态码为 400”,但邮递员发布了相同的数据

Posted

技术标签:

【中文标题】axios.post 显示错误“请求失败,状态码为 400”,但邮递员发布了相同的数据【英文标题】:axios.post is showing error "Request failed with status code 400" but same data is posted by postman 【发布时间】:2021-11-16 07:44:11 【问题描述】:

当我在邮递员中发布具有相同“url-link”的相同“数据对象”时,它的工作和我的数据在邮递员中成功发布。但是当通过 axios 命中请求时,出现错误“请求失败,状态码 400”。我的数据没有发布。我试图传递 axios 的数据对象,例如“JSON.stringify(data)”,但它不起作用并显示错误“状态 400”。请解决我的问题....

const Axios = require("axios");
export const uploadImages = (data) => async (dispatch) => 
  dispatch(
    type: "UPLOAD_IMAGES_INIT",
  );
  try 
    const result = await Axios.post("http://localhost:4000/postImages", 
      "id":1,
      "name":"Flare Dress",
      "price":12000,
      "salePrice":20000,
      "discount":10,
      "pictures":[
         "/assets/images/fashion/product/1.jpg",
      ],
      "shortDetails":"Sed ut perspiciatis, unde omnis iste natu",
      "description":"Lorem Ipsum is simply dummy text of",
      "stock":16,
      "new":true,
      "sale":true,
      "category":"women",
      "colors":[
         "yellow",
      ],
      "size":[
         "M",
      ],
      "tags":[
         "nike",
      ],
      "rating":4,
      "variants":[
         
            "color":"yellow",
            "images":"/assets/images/fashion/product/1.jpg"
         ,

      ],
      "newPostImages":[
         
            "images":"/assets/images/fashion/product/1.jpg"
         ,
      ]
   );
   catch (err) 
    const error = err.message || "Error Upload Images";
    dispatch(
      type: "UPLOAD_IMAGES_FAIL",
      payload: error,
    );
  
;

【问题讨论】:

服务器(无论在localhost:4000/postImages监听的任何组件)都没有处理请求,因为它在某些方面是“坏的”——错误的参数、意外的值等。检查你的端点代码并确保您正在发送正确的数据。 【参考方案1】:

我得到了这个问题的答案。 Postman 和我的代码的请求结构有所不同(无论使用 fetch 还是 Axios)。是的,可能会发生当前用户没有对某些实体的权限,但在这种情况下,它的全部内容如下:

简单的答案:您必须选择 cookie 身份验证或基本身份验证。 基本身份验证:用户和密码的 base64 格式。 Cookie 身份验证(我正在使用此选项):Drupal 在执行登录请求时使用会话 cookie 设置标头(邮递员是自动的,但在您的代码请求中,您需要包含并发送相同的 cookie 用于 POST或 PATCH 或任何需要身份验证的东西)。不要忘记也发送您的令牌标头。

【讨论】:

以上是关于axios.post 显示错误“请求失败,状态码为 400”,但邮递员发布了相同的数据的主要内容,如果未能解决你的问题,请参考以下文章

我收到 Uncaught (in promise) 错误:请求失败,状态码为 401

反应:未捕获(承诺)错误:请求失败,状态码为 400

可能未处理的承诺拒绝/错误:请求失败,状态码为 400

未捕获(承诺)错误:请求失败,状态码为404

如何修复 axios Next js 中的“错误:请求失败,状态码为 404”

错误:请求失败,状态码为 400。在 POSTMAN 和应用程序中发送之间的差异