Javascript 如何在fetch POST请求中传递空值
我想在fetchpost请求中传递一个空值 为了说明这个例子,这里是我的API客户端失眠(相当于邮递员)的屏幕截图 失眠中的这篇文章返回了期望的结果 现在,我尝试使用以下代码在javascript中执行此操作:Javascript 如何在fetch POST请求中传递空值,javascript,sequelize.js,fetch,fetch-api,Javascript,Sequelize.js,Fetch,Fetch Api,我想在fetchpost请求中传递一个空值 为了说明这个例子,这里是我的API客户端失眠(相当于邮递员)的屏幕截图 失眠中的这篇文章返回了期望的结果 现在,我尝试使用以下代码在javascript中执行此操作: let decal_colo = document.querySelector('#decal_colo').value.trim(); if (!decal_colo) {decal_colo=null}; let owner = document.query
let decal_colo = document.querySelector('#decal_colo').value.trim();
if (!decal_colo) {decal_colo=null};
let owner = document.querySelector('#owner').value.trim();
console.log(decal_colo, owner)
const response = await fetch('/api/testFilter', {
method: 'POST',
body: JSON.stringify({ decal_colo, owner }),
headers: { 'Content-Type': 'application/json' },
});
if (response.ok) {
const filteredData = await response.json();
console.log(filteredData);
您可以看到,如果用户未提供任何输入,我正在尝试传递此行中的null
值:
if (!decal_colo) {decal_colo=null};
这将console.log的值为null
,但我的API路由没有以相同的方式解释它。没有错误,但返回的结果为零。我已经查看了数据库,应该会返回一些结果
如果有帮助,我将使用sequelize创建模型和控制器
如何以正确的方式传递
null
?在失眠应用程序中,您发送的是JSON对象,而在JavaScript代码中,您发送的是字符串。将body:JSON.Stringify替换为:
body: { decal_colo, owner }
这是不正确的。
body
的JSON.stringify({deal\u colo,owner})
和头的{'Content Type':'application/JSON'}
的组合正确地发送JSON负载。如果删除了JSON.stringify
,有效负载就会变成[object object]
(结果是{'Content Type':'application/JSON'}.toString()
)。巧合的是,这可能适用于OPs情况,但它并没有通过fetch请求传递JSON中的null
值。我认为这是正确的。基本上,这表明我在显式地传递字符串化数据。我从未在请求体中使用过JSON.stringify,也从未遇到过负载为[object]的问题。只要它能工作,我就说correct基本上这表明我在显式地传递字符串化数据。
-这是一个UVString
,根据。对象文字不是这些类型中的一种。我相信OP希望传递“owner”和null,而不仅仅是null。可能您已经翻转了字段;通过Insomina的请求的有效负载为{“贴花”:LTBL,“所有者”:null}
,但通过fetch的请求的有效负载(可能)为{“贴花”:null,“所有者”:“某些值”}
。