这是我的代码,使用superagent来调用服务器端端点
request
.get('/_api/get_data')
.query(`user_id=${userId}`)
.end((err, res) => {
这将发出对http://server/_api/get_data?user_i=112223
使用fetch,代码变为:
let payload = {
user_id: userId,
}
let data = new FormData(payload)
let opts = {
body: data,
credentials: 'same-origin'
}
fetch('/_api/get_data', opts)
.then((res) => {
但是,使用这个新代码,查询字符串不会附加到网址。
如何使用fetch
完成此效果?
答案 0 :(得分:0)
我找到了sample in spec
如果您想使用网址查询参数:
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(/* … */)
所以,似乎你应该传递给fetch
刚刚生成的url,并且之后无法配置它。
对于consctruct查询,您可以使用URLSearchParams
var urlSearch = new URLSearchParams(),
params = {lat:35.696233, long:139.570431};
Object.keys(params).forEach(key => urlSearch.append(key, params[key]));
fetch("https://geo.example.org/api?"+urlSearch).then(/* … */);