如何在get in方法中动态传递一个参数?

How to dynamically pass a parameter in the get in method?

在网络选项卡中,我发送查询“https://api.spotify.com/v1/search?limit=14&market=US&offset=5&q=abba&type=track,artist

它不起作用:如何将查询设置为该顺序: https://api.spotify.com/v1/search?q=mmm&type=track%2Cartist&market=US&limit=10&o

'q'应该在搜索之后?

 getArtists(query) {
   const params = {
        type: 'track,artist',
        market: 'US',
        limit: 14,
        offset: 5
    };

    if (typeof query === 'string') {
        params.q = query;
    }

    console.log(params) 

    return this.$http.get("https://api.spotify.com/v1/search", { 
params }).then(function mySuccess(response) {
        console.log(response.data);
    }, function myError(response) {
        console.log(response);
    });
  };

getArtists('Abba');

试试这个

getArtists(query) {
   let params = {
        q: query,
        type: 'track,artist',
        market: 'US',
        limit: 14,
        offset: 5
    };

    if (typeof query !== 'string') {
        delete params.q;
    }

    console.log(params) 

    return this.$http.get("https://api.spotify.com/v1/search", { 
params }).then(function mySuccess(response) {
        console.log(response.data);
    }, function myError(response) {
        console.log(response);
    });
  };

我在尝试您的 API 时看到授权错误。

{
"error": {
"status": 401,
"message": "No token provided"
}
}

您需要在 header 中提供授权令牌才能解决此问题。

getArtists(query) {
let params = {
    q: query,
    type: 'track,artist',
    market: 'US',
    limit: 14,
    offset: 5
};

if (typeof query !== 'string') {
    delete params.q;
}

console.log(params) 

return this.$http.get("https://api.spotify.com/v1/search", {headers: {
'Authorization': 'Bearer <AUTHORIZATION TOKEN>}, 
params }).then(function mySuccess(response) {
    console.log(response.data);
}, function myError(response) {
    console.log(response);
});
};

如果您还没有,请在此处查看流程:https://developer.spotify.com/documentation/general/guides/authorization-guide/