拼接url

将对象格式转为url拼接的参数
直接调用 paddStringToUrl

/**
 * encodeToURIString 把一个对象类型转化为问号参数类型的字符串
 * @param data 要解析的对象
 * @param isUIR 是否转化为URIComponent,默认转化,只有当值为false时,不转化
 * @returns '' 问号参数类型的字符串
 */
var encodeToURIString = function (data, isUIR) {
    //默认参数isUIR不为false,值皆为true
    if (isUIR !== false) {
        isUIR = true;
    }
    var ary = [];
    if (Object.prototype.toString.call(data) === '[object Object]') {
        for (var key in data) {
            if (data.hasOwnProperty(key)) {
                if (isUIR) {
                    try {
                        key = decodeURIComponent(key);
                        data[key] = decodeURIComponent(data[key]);
                        ary.push(key + '=' + encodeURIComponent(data[key]));
                    } catch (ex) {
                        ary.push(key + '=' + data[key]);
                    }
                } else {
                    ary.push(key + '=' + data[key]);
                }
            }
        }
    }

    return ary.join('&');
};


/**
 * paddStringToUrl 将对象转化为问号参数形式添加在url地址的后面,会进行URI编码处理
 * @param url 原url地址
 * @param param 参数对象
 * @returns '' 返回拼接好的新url地址
 */
function paddStringToUrl(url, param) {
    if (!param) {
        return url;
    }
    var hasSearch = /\?/.test(url);
    var data = encodeToURIString(param);
    return url + (hasSearch ? '&' : '?') + data;
}

你可能感兴趣的:(拼接url)