我正在尝试以下方法:
<html>
<script src ="myscript.js" type = "text/javascript">
// in this file i have the foo functions defined...
</script>
<!--- here the page is defined -->
<form action = "some.php" method = "post">
<input type = "submit" name ="exec" value = "EX" style="width:40px" id = "EX" onClick="foo();">
</html>
现在,在myscript.js:
function foo() {
var req;
req = new XMLHttpRequest();
req.open("POST", "mydomain.name/hello.php", false);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
// ldt is a successfully defined string,
// i am not showing the complete function, but an alert here
// showes that ldt is successfully defined
req.send(ldt);
alert("sent");
alert(req.status);
if(req.status == 200)
{
var lddata = req.responseText;
alert(lddata);
}
}
不是在我的javascript中,我调用了hello.php,而初始htmp中的表单转到了另一个文件:some.php。
文件hello.php只是吐出“hello world”,没有别的 - 此时,post变量没什么用。
现在,我希望在req.send()收到回复之前,javascript不会执行任何进一步的操作,并且在some.php加载之前,我至少会收到有关req状态的警报。
然而,在firefox中(所有文件都是从本地apache服务器中提取的,除了hello.php,它在mydomain.name中。我默认启用了CORS。),在我了解req的状态之前通过警报,下一页,some.php已加载。
有什么问题?
PS:在SO中的类似主题中有一些问题,但我似乎没有取得任何进展。编辑:正如评论中所述:这是计划
编辑2:也尝试了
req.open("POST", "http://mydomain.name/hello.php", false);
如评论中所述,也不起作用。