JS获取url参数及url编码、解码

完整的URL由这几个部分构成:scheme://host:port/path?query#fragment ,各部分的取法如下:

window.location.href:获取完整url的方法:,即scheme://host:port/path?query#fragment

window.location.protocol:获取rul协议scheme

window.location.host:获取host

window.location.port:获取端口号

window.location.pathname:获取url路径

window.location.search:获取参数query部分,注意此处返回的是?query

window.location.hash:获取锚点,#fragment

在js中可以使用escape(), encodeURL(), encodeURIComponent(),三种方法都有一些不会被编码的符号:

escape():@ * / +

encodeURL():! @ # $& * ( ) = : / ; ? + ‘

encodeURIComponent():! * ( ) ‘

在java端可以使用URLDecoder.decode(“中文”, "UTF-8");来进行解码

但是由于使用request.getParameter()来获取参数时已经对编码进行了一次解码,所以一般情况下只要在js中使用

encodeURIComponent("中文");

在java端直接使用request.getParameter()来获取即可返回中文。

如果你想在java端使用URLDecoder.decode(“中文”, "UTF-8");来解码也可以在js中进行二次编码,即:

encodeURIComponent(encodeURIComponent("中文"));

如果不进行二次编码的话,在java端通过decode方法取的会是乱码。

JS获取url参数及url编码、解码

时间: 2024-10-24 00:25:54

JS获取url参数及url编码、解码的相关文章

[转]用JS获取地址栏参数的方法(超级简单)

本文转自:http://www.cnblogs.com/fishtreeyu/archive/2011/02/27/1966178.html 方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) ? function GetQueryString(name) {      var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");      var r = window.loca

js获取当前域名、Url、相对路径和参数以及指定参数

摘自:https://www.cnblogs.com/wangdahai/p/6221399.html有修改. 一.js获取当前域名的2种方法 方法一 var domain = document.domain; 方法二 var domain = window.location.host; 注意:由于获取到的当前域名不包括http://,所以把获取到的域名赋给 a 标签的 href 时,别忘了加上http://,否则单击链接时导航会出错. 二.获取当前Url的4种方法 var url = wind

js获取当前域名、Url、相对路径和参数

一.js获取当前域名有2种方法 1.方法一 var domain = document.domain; 2.方法二 var domain = window.location.host; 3.注意问题 由于获取到的当前域名不包括 http://,所以把获取到的域名赋给 a 标签的 href 时,别忘了加上 http://,否则单击链接时导航会出错. 二.获取当前Url的4种方法 var url = window.location.href; var url = self.location.href

JS 获取当前域名,url

<script language="javascript"> //获取域名 host = window.location.host; host2=document.domain; //获取页面完整地址 url = window.location.href; document.write("<br>host="+host) document.write("<br>host2="+host2) document.w

服务器端获取表单数据的编码解码问题(servlet)

首先需要明确指出的是,这里的服务器是指tomcat. 在页面没有明确指定编码的情况下,客户端通过input标签和字符串向服务器传递两个值param1和param2.如果直接使用request.getParameter()方法来获取值的话,得到的肯定都是乱码,我们需要对其重新进行编码解码,就像下面的代码所示的那样: new String(req.getParameter("param1").getBytes("iso-8859-1"), "gbk"

JS获取地址参数

今天碰到获取地址参数的问题,所以总结了一下. 第一种情况:获取地址栏参数 function getUrlParam(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象 var r = window.location.search.substr(1).match(reg); //匹配目标参数 if (r!=null) return u

用JS获取地址栏参数的方法(超级简单)

方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null)return unescape(r[2]); return null; }

用JS获取地址栏参数的方法

方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) {      var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");      var r = window.location.search.substr(1).match(reg);      if(r!=null)return  unescape(r[2]);

用JS获取地址栏参数的方法(转)

方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) {      var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");      var r = window.location.search.substr(1).match(reg);      if(r!=null)return  unescape(r[2]);