Ken*_*hou 23 html url-rewriting
以下URL工作正常:
但是,如果我想在`param like?,/,\中放置一些特殊字符,那么URL将变为:
要么
http:// localhost/mysite/mypage?param = http://www.mysite.com/page2?a = \&b = ...
哪个不行.我该如何解决这个问题?
Ste*_* P. 22
您必须在URL中编码特殊字符.请参阅:http://www.w3schools.com/tags/ref_urlencode.asp
使用 javascript 传递带有特殊字符的 QueryString 值的简单方法:
var newURL=encodeURIComponent(uri);
window.location="/abc/abc?q="+newURL;
Run Code Online (Sandbox Code Playgroud)
您需要在将查询参数组合以形成网址之前对其进行编码.这里需要的函数是encodeURIComponent.例如,
您需要创建的网址是:
http://localhost/mysite/mypage?param=a=?&b=/
Run Code Online (Sandbox Code Playgroud)
现在,假设?和/作为变量,你需要在放入url之前对它们进行编码.所以让我们使用这个函数创建你的url(我期待两个查询参数):
var q1 = "a=?"; //came from some input or something
var q2 = "/"; //came from somewhere else
var faultyUrl = "http://localhost/mysite/mypage?param="+ q1 +"&b=" + q2;
// "http://localhost/mysite/mypage?param=a=?&b=/"
var properUrl = "http://localhost/mysite/mypage?param="+ encodeURIComponent(q1) +"&b=" + encodeURIComponent(q2);
//"http://localhost/mysite/mypage?param=a%3D%3F&b=%2F"
Run Code Online (Sandbox Code Playgroud)
此函数在基本JS中,并在所有浏览器中受支持.
在 JavaScript 中,您可以使用该encodeURI()
函数。
ASP有这个Server.URLEncode()
功能。
您可以HttpServerUtility.UrlEncode
在.NET 中使用。
归档时间: |
|
查看次数: |
67700 次 |
最近记录: |