Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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';s fetch()函数_Javascript_Jquery_Json_Fetch Api - Fatal编程技术网

如何将附加数据发送到javascript';s fetch()函数

如何将附加数据发送到javascript';s fetch()函数,javascript,jquery,json,fetch-api,Javascript,Jquery,Json,Fetch Api,我想使用fetch()来查询为我的搜索页面提供动力的API端点。它返回JSON格式的搜索结果列表 我还想将用户提交的当前查询传递给API。旧的实现使用jquery和。查看getJSON的文档,它说我可以传入一个data变量: data Type: PlainObject or String A plain object or string that is sent to the server with the request. 数据 类型:PlainObject或String 随请求一起发送到服

我想使用
fetch()
来查询为我的搜索页面提供动力的API端点。它返回JSON格式的搜索结果列表

我还想将用户提交的当前查询传递给API。旧的实现使用jquery和。查看getJSON的文档,它说我可以传入一个
data
变量:

data Type: PlainObject or String A plain object or string that is sent to the server with the request. 数据 类型:PlainObject或String 随请求一起发送到服务器的普通对象或字符串。 对于fetch,我不确定如何作为请求的一部分传入数据。所以我的问题是,如何传入一个字符串,该字符串将随请求一起发送到服务器

编辑:我想我可以将查询附加到请求URL,如“/search/?q=Something”并发送。有人有更好的方法吗

如果您查看关于fetch的文档,它列出了几种类型的值,您可以使用这些值来指定在请求中发送的数据

使用
FormData
的示例:

var fd = new FormData();
fd.append('q', 'Something');

fetch('/search', {
  method : "POST",
  body : fd
})
.then(...)
请注意,您不能在GET或HEAD请求上使用
body
选项(在您的情况下,您可能正在这样做)。在这种情况下,可以使用
URLSearchParams
建立参数:

var params = new URLSearchParams();
params.append('q', 'Something');

fetch('/search/?' + params.toString(), {
    method: 'GET'
})
.then(...);
你可以通过下面的考试

 fetch('/users', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    name: 'Hubot',
    login: 'hubot',
  })
})

fetch不是唯一获取固定信息的构建吗?在文档中,我找不到任何可以通过fetch发送参数的内容。如果您不希望数据出现在请求中,那么就有get-post-getJSON-ajax和更多的参数,如果您只想在响应结果时让变量存在,那么如果我调用
fetch('/save',{method:“POST”,body:{data:5}})
在我的Chrome控制台中,发送请求时带有一个空的body和
内容长度
0。是的,
javascript
对象应传递给
JSON.stringify()
,另请参见