跳转并将请求返回的data传递到请求返回的url中

本文介绍了一种解决跨浏览器表单请求不跳转问题的方法,包括动态生成表单、填充请求数据及调整页面跳转行为。特别针对Chrome、Firefox、IE的不同表现提供了优化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决方法:

模拟表单请求

1.动态生成表单form

var form = $('<form></form>');
form.attr('action', data.data.bankurl); 
form.attr('method', 'post'); 
form.attr('target', '_self')//可设置页面生成方式

2.将请求返回的数据放入动态生成的input元素,丢入form中

var respparams = data.data.respparams;
for( n in respparams){
input = $('<input type="text" name="'+respparams[n].key+'" value="'+respparams[n].value+'" />'); 
form.append(input); 
}

3.提交form

form.submit(); 
return false;//防止表单默认操作,多次提交等

 

遇到的问题:

chrome运行正常,Firefox、IE页面不跳转

解决方法:

将form渲染在body中,并隐藏

var form = $('<form></form>').hide().appendTo('body'); 

 

扩展:

如果不希望页面跳转,可以在body中动态创建一个隐藏的iframe。

注意,此时form的target需要指向iframe的id。

为防止部分浏览器差异(Firefox、IE),最好设置iframe的name属性,并且与id的值相同。

$("<iframe width='1' height='1' id='submitIframe' name='submitIframe'></iframe>").prependTo('body');  //可以自己设置css
$("#submitDaHuaForm").attr("src", unescape(data.data.bankurl)); 


form.attr('target', 'submitIframe');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值