使用POST方法重定向javascript页面

使用POST方法重定向javascript页面,javascript,html,forms,post,Javascript,Html,Forms,Post,我有一个网站,将用户重定向到外部主机进行支付处理。当用户返回到我的网站时,根据付款处理的结果,我需要使用POST方法将用户重定向到最终网页,以便完成他们的订单。下面的代码适用于Chrome和Opera浏览器。在Firefox和IE浏览器上,它失败了,用户最终得到一个空白页面。我需要修改什么才能在所有浏览器上工作 var cSecurem = 'https://www.website.com/'; function gotofinalpage(p1,p2) { setLoginCook

我有一个网站,将用户重定向到外部主机进行支付处理。当用户返回到我的网站时,根据付款处理的结果,我需要使用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 + '&param2=' + p2;
    var myForm = document.createElement("form");
    myForm.method="post" ;
    myForm.action = cURL ;
    myForm.submit() ;
}

提交前将表单添加到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();
var el=document.getElementById(“formDiv”);
el.innerHTML=“”+
'' +
'' +
'';
document.getElementById(“myForm”).submit();

注意:不要忘记在DocumentReady事件中运行此代码。否则,某些浏览器可能会失败。

IE和Firefox上会出现什么错误?因此您使用POST,但通过查询字符串传递数据???URL中的值仅使用GET方法。POST方法将从
name
表单元素中获取值。也许jQuery的AJAX工具是最佳多浏览器支持的答案?@Milkmannetje No。这不是AJAX,OP没有理由不需要添加依赖项来解决简单的javascript问题。这个问题有一个解决方案。我尝试了下面的代码,但没有解决问题。实际上,在尝试了这段代码之后,Opera停止了工作<代码>var myForm=document.createElement(“表单”);myForm.method=“post”;myForm.action=cURL;document.body.appendChild(myForm);myForm.submit()我用另一种值得尝试的方法编辑了我的答案。这就是我得到的错误<代码>未声明HTML文档的字符编码。如果文档包含US-ASCII范围之外的字符,则在某些浏览器配置中,文档将呈现乱码文本。页面的字符编码必须在文档或传输协议中声明。。根据我在网上做的搜索,我在Javascript中添加了
charset='utf-8'
,但这似乎没有多大帮助