Pot.URI.buildURI

{String} Pot.URI.buildURI ({Object|String} url [, {Object|Array|String} query])

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'