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
            }
        });
    }
});

必要なリクエスト URL: 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 に答える