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

时间:2017-02-19 17:09:50

标签: javascript jquery json fetch-api

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

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

data
Type: PlainObject or String
A plain object or string that is sent to the server with the request.

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

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

2 个答案:

答案 0 :(得分:3)

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

使用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(...);

答案 1 :(得分:0)

您可以通过以下

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