URLでパラメータを渡す(パラメータもURL)

1670 ワード


encodeURIComponent()   URI  。

if ($("#pageType").val() == "treePage"){
		modidTemp = $('#modid').val();
		//alert($("#billTypeId").val());
		//alert(modidTemp);
		var url = urlParamObj.createTreeUrl+"?childLinkUrl="+encodeURIComponent("/en/projapplymgr/projectapply/list.action?modid="+modidTemp+"&billTypeId="+$("#billTypeId").val());
		onceLoadSingleFloorInit(
				url,
				function() {
					clickNode("",{"iframeId":"iFrameMainList"});
				}
			);
	}

URLでパラメータchildLinkUrlを渡したいので、バックグラウンドでこのパラメータを受け取ります.このパラメータは別のURLです.
最初はurlの正常な接合パラメータ&に従って接合しました.
var url = urlParamObj.createTreeUrl+"?childLinkUrl=/en/projapplymgr/projectapply/list.action?modid="+modidTemp+"&billTypeId="+$("#billTypeId").val());


バックグラウンドブレークポイントで受信childLinkUrlの値は/en/projapplymgr/projectapply/listである.action?modid=10-04.07.その後のパラメータbilltypeidは受信されませんでした.
w 3 cで調べたらこの問題は解決しました.
EncodeURIComponent()関数は、文字列をURIコンポーネントとして符号化することができる.

構文

encodeURIComponent(URIstring)

パラメータ
説明
URIstring
必要です.URIコンポーネントまたは他の符号化するテキストを含む文字列.

戻り値


URIstringのコピーで、一部の文字は16進数のエスケープシーケンスに置き換えられます.

説明


この方法はASCIIアルファベットと数字を符号化しないし、これらのASCII句読点を符号化しない:-.!~*'( ) .
他の文字(例:;/?:@&=+$、#URIコンポーネントを区切るための句読点)は、1つ以上の16進数のエスケープシーケンスによって置き換えられます.

ヒントとコメント


ヒント:encodeURIComponent()関数とencodeURI()関数の違いに注意してください.前者は、プロトコル、ホスト名、パス、クエリー文字列などのURIのパラメータの一部であると仮定します.したがって、encodeURIComponent()関数は、URIの各部分を区切る句読点に変換される.