Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在fetch POST请求中传递空值_Javascript_Sequelize.js_Fetch_Fetch Api - Fatal编程技术网

Javascript 如何在fetch POST请求中传递空值

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

我想在fetchpost请求中传递一个空值

为了说明这个例子,这里是我的API客户端失眠(相当于邮递员)的屏幕截图

失眠中的这篇文章返回了期望的结果

现在,我尝试使用以下代码在javascript中执行此操作:

    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,“所有者”:“某些值”}