JavaScript 未收到获取请求正文参数
JavaScript fetch request body parameters not received
上下文:
我正在尝试使用 JavaScript 向服务器发送放置请求并从我正在编写的 html 文件中获取。
问题:
我提出的请求在 Insomnia 中有效,但是当我尝试从 html 发送它时,它没有被正确接收。该代码也是由 Insomnia 生成的。
当我从 html 发送请求时,我收到了回复,但是服务器没有完成请求中的任务,让我相信它没有收到或者我错过了一些东西.
尝试发送请求时,控制台显示响应,显示 "ok"、200 等,但也有 "bodyUsed: false" 部分。
Insomnia生成的函数:
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" 消息是否意味着请求的正文由于某种原因被忽略了?难道这都是服务器的错?
免责声明:
我对网络开发有点陌生,所以如果我遗漏了一些明显的要点,请原谅我。
试试这个
let formData = new FormData();
formData.append('name', 'name value');
formData.append('desc', 'description value');
fetch('url', {
method: 'POST',
credentials: 'same-origin',
body: formData
}).then(rawResponse => rawResponse.json())// or rawResponse.text() to get simple string
.catch(error => {
console.log(error);
})
.then(response => {
console.log(response);
});
如果您保留 "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);
});
上下文: 我正在尝试使用 JavaScript 向服务器发送放置请求并从我正在编写的 html 文件中获取。
问题: 我提出的请求在 Insomnia 中有效,但是当我尝试从 html 发送它时,它没有被正确接收。该代码也是由 Insomnia 生成的。 当我从 html 发送请求时,我收到了回复,但是服务器没有完成请求中的任务,让我相信它没有收到或者我错过了一些东西. 尝试发送请求时,控制台显示响应,显示 "ok"、200 等,但也有 "bodyUsed: false" 部分。
Insomnia生成的函数:
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" 消息是否意味着请求的正文由于某种原因被忽略了?难道这都是服务器的错?
免责声明: 我对网络开发有点陌生,所以如果我遗漏了一些明显的要点,请原谅我。
试试这个
let formData = new FormData();
formData.append('name', 'name value');
formData.append('desc', 'description value');
fetch('url', {
method: 'POST',
credentials: 'same-origin',
body: formData
}).then(rawResponse => rawResponse.json())// or rawResponse.text() to get simple string
.catch(error => {
console.log(error);
})
.then(response => {
console.log(response);
});
如果您保留 "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);
});