XMLHTTPRequest.send()在不工作的Firefox中

时间:2014-12-12 07:15:11

标签: javascript

下面的js代码只能在firefox中使用,但在chrome和IE中工作正常。谁能请帮忙。

我想点击一个按钮提交两个表单

function abc(url){
var form = document.getElementById("sample");
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send("actionCode=2");

var form1 = document.getElementById("sample1");
form1.submit();
}

奇怪的是,在使用firebug在xhr.send()行放置调试器时,只要我从firebug中删除调试器,xhr.send就不会执行。

非常感谢任何建议。 感谢

1 个答案:

答案 0 :(得分:0)

这是异步请求,您需要检查请求的状态

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
 if (xhr.readyState == 4 && xhr.status == 200) {
   var form1 = document.getElementById("sample1");
   form1.submit();
 }
}
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-type",  "application/x-www-form-urlencoded");
xhr.send("actionCode=2");

or this may help

xhr.open("POST", url, false); - it will make the request synchronous. 
Then you will not required to move submit or listen to events 

提交表单数据的其他方式 https://developer.mozilla.org/en-US/docs/Web/Guide/Using_FormData_Objects