如何将其他数据发送到javascript的fetch()函数

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

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

数据
键入:PlainObject或String
与请求一起发送到服务器的普通对象或字符串。

查看用于获取的文档 ,我不确定如何将数据作为我的请求的一部分传递。 所以我的问题是,如何传入一个将与我的请求一起发送到服务器的字符串?

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

如果查看有关fetch的文档的Body部分 ,它会列出几种类型的值,您可以使用这些值来指定请求中发送的数据。

使用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', }) })