我有一个网站,可以将用户重定向到外部主机进行付款处理。当用户根据付款处理结果返回我的网站时,我需要使用POST方法将用户重定向到最终网页,以便完成订单。我在下面的代码适用于Chrome和Opera浏览器。在Firefox和IE浏览器上,它失败,用户最终得到一个空白页面。为了在所有浏览器上工作,我需要修改什么?
var cSecurem = 'https://www.website.com/';
function gotofinalpage(p1,p2) {
setLoginCookie('secure');
var cURL = cSecurem + 'bh/finalpage.r?param1=' + p1 + '¶m2=' + p2;
var myForm = document.createElement("form");
myForm.method="post" ;
myForm.action = cURL ;
myForm.submit() ;
}
答案 0 :(得分:2)
在提交前将表单添加到dom,然后再试一次:
document.body.appendChild(myForm)
编辑:也许你应该尝试内联dom操作。假设您有一个id为 formDiv 的空div:
var el = document.getElementById("formDiv");
el.innerHTML = '<form id="myForm" action="https://www.website.com/bh/finalpage.r" method="post">' +
'<input type="hidden" name="param1" value="' + p1 + '">' +
'<input type="hidden" name="param2" value="' + p2 + '">' +
'</form>';
document.getElementById("myForm").submit();
注意:不要忘记在文档就绪事件中运行此代码。有些浏览器可能会失败。