解决方法:
模拟表单请求
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');