XmlHttpRequest - send()与post似乎不起作用

时间:2014-11-06 21:45:57

标签: javascript ajax

我正在尝试以下方法:

<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中的类似主题中有一些问题,但我似乎没有取得任何进展。

编辑:正如评论中所述:这是计划

  1. 点击开头的html文件中的“EX”按钮,导致onClick函数foo()被激活。
  2. foo()执行XmlHttpRequest()从其他地方的hello.php加载响应(mydomain.name)
  3. 然后foo()alos设置隐藏输入元素的值
  4. 然后由于EX是一个提交按钮,表单将所有内容(包括新设置的隐藏元素)提交给some.php,该文件位于同一服务器中。
  5. 编辑2:也尝试了

    req.open("POST", "http://mydomain.name/hello.php", false);
    

    如评论中所述,也不起作用。

0 个答案:

没有答案