在分析URL参数时中文出现undefined,求高手解决!

时间:2022-11-26 22:52:48
function Request(strParame)
 { 
var args = new Object(); 
var query = "http://localhost/index.asp?name=中文&height=100";
var pairs = query.split("&"); // Break at ampersand 
for(var i = 0; i < pairs.length; i++) 

var pos = pairs[i].indexOf('='); 
if (pos == -1) continue; 
var argname = pairs[i].substring(0,pos); 
var value = pairs[i].substring(pos+1); 
value = decodeURIComponent(value); 
args[argname] = value; 
//alert(args[argname]);//这里还正常呢,

//alert(args[strParame]);//到那个中文就成了undefined了,英文就没事这是什么原因有什么解决办法吗?
return args[strParame]; 


var name=Request('name');
alert(name);

7 个解决方案

#1


跳转之前就应该给参数加密。
到下一个页面就给参数解密。。

#2


参考:http://www.w3school.com.cn/js/jsref_decodeURIComponent.asp

#3


引用 1 楼 huzhihui429 的回复:
跳转之前就应该给参数加密。
到下一个页面就给参数解密。。

不是加密解密的问题吧。。。。是参数没有了。。

#4



 function QueryString(fieldName) {
            var urlString = "http://localhost/index.asp?name=中文&height=100";
            if (urlString != null) {
                var typeQu = fieldName + "=";
                var urlEnd = urlString.indexOf(typeQu);
                if (urlEnd != -1) {
                    var paramsUrl = urlString.substring(urlEnd + typeQu.length);
                    var isEnd = paramsUrl.indexOf('&');
                    if (isEnd != -1) {
                        return paramsUrl.substring(0, isEnd);
                    }
                    else {
                        return paramsUrl;
                    }
                }
                else {
                    return null;
                }
            }
            else {
                return null;
            }
        }
        alert(QueryString('name'));

#5


引用 4 楼 lgyg2002 的回复:

 function QueryString(fieldName) {
            var urlString = "http://localhost/index.asp?name=中文&height=100";
            if (urlString != null) {
                var typeQu = fieldName + "=";
                var urlEnd = urlString.indexOf(typeQu);
                if (urlEnd != -1) {
                    var paramsUrl = urlString.substring(urlEnd + typeQu.length);
                    var isEnd = paramsUrl.indexOf('&');
                    if (isEnd != -1) {
                        return paramsUrl.substring(0, isEnd);
                    }
                    else {
                        return paramsUrl;
                    }
                }
                else {
                    return null;
                }
            }
            else {
                return null;
            }
        }
        alert(QueryString('name'));



大哥,这和那个有区别吗?

#6


我晕啦。。。。大哥们。

#7


晕啦自己找到错误了,第一个参数取错了。晕啊。。

#1


跳转之前就应该给参数加密。
到下一个页面就给参数解密。。

#2


参考:http://www.w3school.com.cn/js/jsref_decodeURIComponent.asp

#3


引用 1 楼 huzhihui429 的回复:
跳转之前就应该给参数加密。
到下一个页面就给参数解密。。

不是加密解密的问题吧。。。。是参数没有了。。

#4



 function QueryString(fieldName) {
            var urlString = "http://localhost/index.asp?name=中文&height=100";
            if (urlString != null) {
                var typeQu = fieldName + "=";
                var urlEnd = urlString.indexOf(typeQu);
                if (urlEnd != -1) {
                    var paramsUrl = urlString.substring(urlEnd + typeQu.length);
                    var isEnd = paramsUrl.indexOf('&');
                    if (isEnd != -1) {
                        return paramsUrl.substring(0, isEnd);
                    }
                    else {
                        return paramsUrl;
                    }
                }
                else {
                    return null;
                }
            }
            else {
                return null;
            }
        }
        alert(QueryString('name'));

#5


引用 4 楼 lgyg2002 的回复:

 function QueryString(fieldName) {
            var urlString = "http://localhost/index.asp?name=中文&height=100";
            if (urlString != null) {
                var typeQu = fieldName + "=";
                var urlEnd = urlString.indexOf(typeQu);
                if (urlEnd != -1) {
                    var paramsUrl = urlString.substring(urlEnd + typeQu.length);
                    var isEnd = paramsUrl.indexOf('&');
                    if (isEnd != -1) {
                        return paramsUrl.substring(0, isEnd);
                    }
                    else {
                        return paramsUrl;
                    }
                }
                else {
                    return null;
                }
            }
            else {
                return null;
            }
        }
        alert(QueryString('name'));



大哥,这和那个有区别吗?

#6


我晕啦。。。。大哥们。

#7


晕啦自己找到错误了,第一个参数取错了。晕啊。。