为了账号安全,请及时绑定邮箱和手机立即绑定

如何在网页中POST任意内容并跳转

如何在网页中POST任意内容并跳转

四季花海 2019-04-09 20:25:45
之前是用jQuery的post()方法实现向服务器POST数据.现在新需求需要呈现服务器返回的HTML页面.这个呈现是类似于普通form提交后跳转的过程.解释:使用表单进行POST的方法点击Submit就可以向"/B"POST数据并跳转到B页面Ajax方法$.post("/B",{"foo":"bar"})这种方法能够POST自定义数据但是不能够跳转到B页面现在的需求:用JavaScript控制POST的数据内容并跳转到B页面,类似ExtJS的standardSubmit功能需求决定我们不能在页面上使用form来提交数据.因为提交的数据是页面上几个Div的全部HTML内容(实际上是富文本编辑器).使用jQuery的.html()方法取得这些HTML内容.现在想到的思路是使用jQuery在内存中建立一个form对象,然后调用这个对象的submit方法form=$("")str=$("#bar").html()input=$("").val(str).attr('name','bar')form.append(input)//....继续添加字段form.submit()上面这种方法虽然能用,但是感觉很丑,有没有更好的方法?
查看完整描述

2 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

扩展:
$.extend({
StandardPost:function(url,args){
varform=$(""),
input;
form.attr({"action":url});
$.each(args,function(key,value){
input=$("");
input.attr({"name":key});
input.val(value);
form.append(input);
});
form.submit();
}
});
调用:
$.StandardPost('url/path/req',{arg0:'arg0',arg1:'arg1'});
                            
查看完整回答
反对 回复 2019-04-09
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

$.extend({
StandardPost:function(url,args){
varform=$(""),
input;
form.attr({"action":url});
$.each(args,function(key,value){
input=$("");
input.attr({"name":key});
input.val(value);
form.append(input);
});
form.submit();
}
});
这段代码有兼容性问题,在IE低版本和火狐下不通过,需要在submit前将form.appendTo(document.body),否则无法提交且不会报错,submit后应该从body中remove此结点。另建议给form加上display:none防止影响展现,最终代码如下:
$.extend({
StandardPost:function(url,args){
varbody=$(document.body),
form=$(""),
input;
form.attr({"action":url});
$.each(args,function(key,value){
input=$("");
input.attr({"name":key});
input.val(value);
form.append(input);
});
form.appendTo(document.body);
form.submit();
document.body.removeChild(form[0]);
}
});
                            
查看完整回答
反对 回复 2019-04-09
  • 2 回答
  • 0 关注
  • 592 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信