温馨提示:本文翻译自stackoverflow.com,查看原文请点击:javascript - Setting query string using Fetch GET request
http javascript jquery fetch-api

javascript - 使用Fetch GET请求设置查询字符串

发布于 2020-04-07 10:27:58

我正在尝试使用新的Fetch API

我正在发出这样的GET请求:

var request = new Request({
  url: 'http://myapi.com/orders',
  method: 'GET'
});
fetch(request);

但是,我不确定如何向GET请求中添加查询字符串理想情况下,我希望能够向某人发出GET请求URL

'http://myapi.com/orders?order_id=1'

jQuery我可以通过做这个{order_id: 1}作为data参数$.ajax()有没有等效的方法可以做到这一点Fetch API

查看更多

提问者
mylescc
被浏览
186
CodingIntrigue 2019-10-21 16:46

2017年3月更新:

URL.searchParams支持已正式登陆Chrome 51,但其他浏览器仍然需要polyfill


使用查询参数官方方法是将它们添加到URL。根据规范,这是一个示例:

var url = new URL("https://geo.example.org/api"),
    params = {lat:35.696233, long:139.570431}
Object.keys(params).forEach(key => url.searchParams.append(key, params[key]))
fetch(url).then(/* … */)

但是,我不确定Chrome是否支持searchParamsURL 属性(在撰写本文时),因此您可能要使用第三方库自备解决方案

2018年4月更新:

使用URLSearchParams构造函数,您可以分配2D数组或对象,然后将其分配给,url.search而不是遍历所有键并附加它们

var url = new URL('https://sl.se')

var params = {lat:35.696233, long:139.570431} // or:
var params = [['lat', '35.696233'], ['long', '139.570431']]

url.search = new URLSearchParams(params).toString();

fetch(url)

旁注:URLSearchParams在NodeJS中也可用

const { URL, URLSearchParams } = require('url');