2017-07-04 52 views
0

我有ID的数组让我们说数组值传递给查询字符串URL

favorites = [102,110,112,125] 

我想检索每个ID对应的对象被传递到查询字符串是这样的:

public getFavorites(favs){ 
    let favorites = favs.join(); 
    let encodedUrl = encodeURIComponent(JSON.stringify({"id": favorites })); 

    return this.http.get(this.api_url + '/1/query/data/getFavs?parameters='+encodedUrl, { 
    headers: this.authHeader 
    }) 
    .retry(3) 
    .map(res => res.json()); 
} 

问题是只有一个对象出现在我的html模板和控制台中。为了检索关联的对象,将一组值作为参数传递给URL的最佳方式是什么?

+0

你使用TypeScript吗?如果是这样,请添加合适的标签。 – PeterMader

+0

确定你可以做到这一点。您的服务器代码是否设置为处理该类型的请求? – James

回答

0

您可以在查询字符串中传递具有相同名称的多个参数值。这对你有帮助吗?例如,下面是一个片段:

this.api_url + '/1/query/data/getFavs?id=101&id=110 

Here is another answer对此有更多信息。

如果您必须以序列化方式发送ID,请考虑发布JSON而不是使用GET方法。如果您试图通过使其成为致电呼叫来保持对REST动词标准的遵从性,您是否可以发布服务器代码?

+0

prob是保存值是动态的数组,我不能硬编码它。这里是从视频查询SELECT *的服务器代码WHERE id ='{{id}}' –

+0

您不必对其进行硬编码。您可以循环访问动态数组并构建查询字符串。也许我在这方面误解了你。对于SQL,模板中的ID是否与字符串化的JSON中的ID具有相同的值?模板替换后,这个SQL也会评估什么?它是MySQL,NoSQL,SQL Server? –

+0

即时通讯使用Baas作为后端这是sql,这是通过id拉对象的查询 –

相关问题