GET请求的Url拼接和参数获取
平常工作中,如果没有封装好的框架,获取url中的请求参数是很麻烦的一件事。下列代码,解决了“将对象的值拼接到Url”和“从Url获取参数转换为对象”两个问题。
/** * 拼接getUrl * @param url 地址 * @param params 请求参数 */ Layers.prototype.toGetUrl = function (url, params) { var idx = url.indexOf('?'); if (idx < 0) { url = url + '?'; } else if(idx !== url.length - 1){ if (url.charAt(url.length - 1) !== '&') { url = url + '&'; } } for (var key in params) { if (params.hasOwnProperty(key)) { var v = params[key]; if (v !== '') { url += key + '=' + params[key] + '&'; } } } return url; }; /** * 获取Url中的参数 * @param url 地址 */ Layers.prototype.getUrlParams = function (url) { let res = {}, idx = url.lastIndexOf('?'); if (idx > 0) { let p = url.substring(idx + 1, url.length); // 兼容Vue工程,Vue项目中,允许这样的地址出现:http://www.baidu.com?name=min&age=16#eg1#eg2 let idx = p.indexOf('#'); if (idx > 0) { p = p.substring(0, idx); } let arr = p.split('&'); for (let i = 0; i < arr.length; i++) { let a = arr[i].split('='); if (a.length > 1) { res[a[0]] = decodeURI(a[1]) } } } return res; };
疯狂的妞妞 :每一天,做什么都好,不要什么都不做!