我想使用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"并发送。有没有人有更好的方法?
答案 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',
})
})