javascript - 如何在 url 上制作动态参数?

标签 javascript ajax vue.js url parameters

我的网址是这样的:

https://my-website.com/api/players?countryId=1&clubId=2&playerName=abc

参数是动态的

我的代码是这样的:

getDataPlayer(payload) {
    let params
    if(payload.countryId && payload.clubId && payload.playerName)
      params = `countryId=${payload.countryId}&clubId=${payload.clubId}&playerName=${payload.playerName}`

    return axios.get(`https://my-website.com/api/players?${params}`)
      .then(response => {
        return response.data
      })
},

如果我使用 console.log(payload),结果如下:

{countryId: "1", clubId: "2", playerName: "ronaldo"}

它是动态的。有效载荷可以是:

{countryId: "1", clubId: "2"}

{playerName: "ronaldo"}

有没有简单的方法?或者我必须在方法 getDataPlayer 中设置很多条件

最佳答案

对于查询字符串参数,可以使用encodeURIComponent对字符串进行正确编码。 使用 Array.map 遍历键并通过 Array.join 像这样组合最终结果

 let params = Object.keys(payload).map(el => `${el}=${encodeURIComponent(payload[el])}`).join('&')

如果您的payload{countryId: "1", clubId: "2", playerName: "ronal do "} 参数变成"countryId= 1&clubId=2&playerName=ronal%20do%20" 并正确传递给请求

关于javascript - 如何在 url 上制作动态参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58652641/

相关文章:

javascript - Ajax 从具有特定 ID 的远程文件加载数据

javascript - 获取 vue-select 值不起作用

javascript - 如何在vuejs2中使用 Controller

javascript - 使用 Javascript 更改按钮类

java - 在网站中使用拖放?

javascript - 使用 JSDoc 记录原型(prototype)扩展函数

javascript - Express js 的 Ajax 发布响应不断抛出错误

javascript - 从文件路径创建blob vue electro builder

javascript - AngularJS:显示和更新 ng-repeat 的每个元素的进度条

javascript - 如何映射和减少对象数组?