Pot.js で利用可能。 PotLite.js では利用できません。
URI を組み立てます。
引数 url を文字列で指定すると、引数 query を queryString とみなして組み立てます。
その際に、query が指定されていた場合、Pot.URI.urlEncode によってエンコードされます。
引数 query は、文字列またはオブジェクト、items 形式の配列が指定できます。
引数 url がオブジェクトで指定された場合、
各キー名は Pot.parseURI の結果のキー名と同じ指定ができます。
その際に キー名 'query' はオブジェクトで指定することができます。
Pot.globalize() が適応されている場合、Pot.buildURI() が buildURI() で実行できます。
組み立てた URI 文字列が返ります。
var url = 'http://www.example.com/';
var params = {
foo : '{foo}',
bar : '{bar}'
};
var result = Pot.buildURI(url, params);
Pot.debug(result);
// 'http://www.example.com/?foo=%7Bfoo%7D&bar=%7Bbar%7D'
var url = 'http://www.example.com/test?a=1';
var params = [
['prototype', '{foo}'],
['__iterator__', '{bar}'],
];
var result = Pot.buildURI(url, params);
Pot.debug(result);
// 'http://www.example.com/test?a=1&prototype=%7Bfoo%7D&__iterator__=%7Bbar%7D'
var url = 'http://www.example.com/test?a=1'; var params = 'b=2&c=3'; var result = Pot.buildURI(url, params); Pot.debug(result); // 'http://www.example.com/test?a=1&b=2&c=3'
var parts = {
protocol : 'http:',
username : 'user',
password : 'pass',
hostname : 'www.example.com',
port : 8000,
pathname : '/path/to/file.ext',
query : {
arg1 : 'v1',
arg2 : 'v#2'
},
hash : 'a'
};
var result = Pot.buildURI(parts);
Pot.debug(result);
// 'http://user:pass@www.example.com:8000/path/to/file.ext?arg1=v1&arg2=v%232#a'
var uri = 'http://user:pass@host:8000/path/to/file.ext?arg=value#fragment'; var parts = Pot.parseURI(uri); var result = Pot.buildURI(parts); Pot.debug(result); // 'http://user:pass@host:8000/path/to/file.ext?arg=value#fragment'
var parts = {
protocol : 'file:',
pathname : 'C:\\path\\to\\file.ext',
query : {
arg1 : 'value#1',
arg2 : 'value#2'
},
hash : '#fragment'
};
var result = Pot.buildURI(parts);
Pot.debug(result);
// 'file:///C:\\path\\to\\file.ext?arg1=value%231&arg2=value%232#fragment'