0

加号转换为 %2B 并且我的请求出现错误的 URL。怎么修?代码如下。

// Result params:
// ?game=Dota%2B2&limit=1
// Error in game. Plus converts to %2B
// How Fix?

Meteor.call("getStreams", "Dota+2", "1", function(e, i) {

});

Meteor.methods({
    getStreams: function(game, limit) {
        var response = Meteor.http.call("GET",
            "https://api.twitch.tv/kraken/streams",
            {params: {'game': game, 'limit': limit}});

        return response.data.streams.map(function(i) {
            return {
                "game" : i.game,
                "viewers" : i.viewers,
                "title": i.channel.display_name
            }
        });
    }
});

我需要的请求网址:https ://api.twitch.tv/kraken/streams?game=Dota+2&limit=1

4

1 回答 1

0

这有点小技巧,但您可以自己组装 GET URI:

    var response = Meteor.http.call("GET",
        "https://api.twitch.tv/kraken/streams?game=" + game + "&limit=" + limit);

但请注意,变量不再进行 URI 编码;这允许+通过,但它也可能允许无效字符通过。如果可以通过用户输入设置它们,请小心验证game并在此调用之前进行。limit

于 2013-07-06T05:12:41.687 回答