未收到JavaScript提取请求正文参数

时间:2019-11-23 12:59:18

标签: javascript request fetch put insomnia

上下文: 我正在尝试使用JavaScript向服务器发送放置请求,并从我正在编写的html文件中提取内容。

问题: 我提出的请求在Insomnia中有效,但是当我尝试从html发送请求时,该请求无法正确接收。该代码也是由Insomnia生成的。 当我从html发送请求时,请求已发送,并且还可以,但服务器未完成请求中的任务,导致我认为未收到请求或错过了某些东西。 尝试发送请求时,控制台会显示一个响应,显示“ ok”,200等,但还有一个“ bodyUsed:false”部分。

失眠所产生的功能:

fetch("url", {
  "method": "PUT",
  "headers": {
    "content-type": "application/x-www-form-urlencoded"
  },
  "body": {
    "name": "name",
    "desc": "description"
  }
})
.then(response => {
  console.log(response);
})
.catch(err => {
  console.log(err);
});

问题: 代码有什么问题吗?服务器如何接收请求但不接收正文? “ bodyUsed:false”消息是否表示由于某种原因忽略了请求的正文?难道都是服务器的故障吗?

免责声明: 我对Web开发有点陌生,所以如果我遗漏了一些明显的观点,请原谅我。

2 个答案:

答案 0 :(得分:1)

如果保留"content-type": "application/x-www-form-urlencoded"并以这种方式配置服务器,则应使用FormData发送数据,如下所示:

var formData = new FormData(); 
formData.append('name', 'Chris');
formData.append('descr', 'description');

fetch("url", {
  "method": "PUT",
  "headers": {
    "content-type": "application/x-www-form-urlencoded"
  },
  "body": formData
})
.then(response => {
  console.log(response);
})
.catch(err => {
  console.log(err);
});

答案 1 :(得分:-1)

尝试

push_back