超级连接指向某页面参数的隐藏的处理
项目中以前没有注意一个问题,就是在生成超级连接的时候,指向一个页面,利用了js的window.location.href进行了页面的跳转
window.location.href=../item.jsp?type=a&uid=S998982212
在打开新页面的时候,以为是get方式传递的,在页面的url中或暴露出连接参数等关键信息,被人手工修改后,程序会加载错误。网上查资料想改用post方式隐藏参数信息。今天写了一个很笨的函数来处理这个问题,贴出来与大家共享一下,看看有无更好的改进方案或是实现思路。
dynamicPost(../item.jsp?type=a&uid=S998982212) ;
function dynamicPost(value){
var form = $('<form></form>').appendTo(document.body); //把form增加包boby中,否则表单无法提交,也无法跳转到对应的页面中
var urlLength = value.indexOf("?") ;
var action ="" ;
if (urlLength>0){
action=value.substring(0,urlLength) ;
form.attr('action', action);
form.attr('method','post')
var arg = value.substring(urlLength+1,value.length) ;
var args =arg.split("&");
var arr = [];
for (i=0;i<args.length ;i++ )
{
var part = args[i];
var parts = part.split("=") ;
var input = $('<input type="text" name='+parts[0]+' />');
input.attr('value', parts[1]);
form.append(input);
}
form.submit();
}else{
action= value ;
window.location.href=action ;
}