为啥我可以通过 Postman 发送帖子,但不能通过 JS/JQUERY CLIENT

Posted

技术标签:

【中文标题】为啥我可以通过 Postman 发送帖子,但不能通过 JS/JQUERY CLIENT【英文标题】:Why can i send a Post via Postman but not via the JS/JQUERY CLIENT为什么我可以通过 Postman 发送帖子,但不能通过 JS/JQUERY CLIENT 【发布时间】:2019-10-30 19:26:57 【问题描述】:

好的,我有一个 nodeJs/Express Web 服务,当我通过 Postman 向 Web 服务发送帖子时,当我使用 JS 发送帖子时它不起作用。我收到错误消息:“无法读取未定义的属性'路径'”

好的,当我通过 Postman 向 http://localhost:5000/api/users 发送帖子时 在正文中,表单数据字段中有这个 userImage 并且它可以工作。但是当我通过 JS 客户端发送它时,我得到了错误

好的,这是 JS 客户端

$("#registerUser").click(async e => 
    e.preventDefault();
    let image = $("#fileToUpload").val();


    let number = $("#phone").val();
    let username = $("#username").val();
    let firstname = $("#firstname").val();
    let lastname = $("#lastname").val();
    let password = $("#password").val();
    let email = $("#email").val();
    let level = $("#user_level").val();
    let data = JSON.stringify(
      userImage: image,
      username: username,
      password: password,
      firstname: firstname,
      lastname: lastname,
      email: email,
      phone: number,
      role: level
    );
    console.log(data);
    registerUser(data);
  );

async function registerUser(data) 
    try 
      console.log(data);

      let response = await fetch("http://localhost:5000/api/users", 
        method: "POST",
        headers: 
          "Content-Type": "application/json",
          Authorization: cookie
        ,
        body: data
      );
      let result = await response.json();
      console.log(result);
     catch (e) 
      console.log("Error: " + e.message);
    
  

【问题讨论】:

【参考方案1】:

我猜你必须:

在服务器中:添加app.use(bodyParser.json()) 并启用cors

【讨论】:

以上是关于为啥我可以通过 Postman 发送帖子,但不能通过 JS/JQUERY CLIENT的主要内容,如果未能解决你的问题,请参考以下文章

Postman POST工作但AngularJS帖子投掷404

为啥要用postman做接口测试

为啥我不能通过 Postman 在 JSONPlaceholder 上“放置”数据?

为啥不能伪造 IP 地址?

将 Postman 请求发送到 json 服务器时出现问题

GET 请求通过 Postman 工作,但浏览器告诉我 GET 请求不能有正文