我有一个小函数可以从对象中生成 URL 参数:
function MkArgs(o) {
var ret = '?';
for (var i in o) {
ret += i + '=' + escape(o[i]) + '&';
}
return ret.substr(0, ret.length - 1);
}
然后我可以这样称呼:
MkArgs({
protocol: 'wsfederation',
realm: 'https://www.x.com/',
fedRes: 'Home/FederationResult',
context: '~/Home/FAQ',
version: '1.0',
callback: '?'
});
产生以下内容:
?protocol=wsfederation&realm=https%3A//www.x.com/&fedRes=Home/FederationResult&context=%7E/Home/FAQ&version=1.0&callback=%3F
一切都很好,除了我不希望最后一个参数转义,即我想要:
callback=?
代替
callback=%3F
有什么办法可以在字符串中指出这一点吗?我试过'\?'
了,但没有这样做,也没有找到任何关于如何保护一段字符串免于逃逸的参考资料......
- e