0

I'm trying to work with ajax. I have two pages: request.html and reply.php.

request.html:

<html>
<script language="javascript">
    var xht = new XMLHttpRequest();
    function testAJAX()
    {
        xht.open("get","http://localhost:9999//a.php", true);
        xht.send();
        xht.onreadystatechange=function() { 
            if (xht.readyState==4) {
                alert("Text: "+xht.responseText);
            }
        }
    }
</script>
<form id="form1" name="form1" method="post" action="">
  btn
  <input name="btn" type="submit" id="btn" onClick="testAJAX();" value="Submit" />
</form>
</html>

reply.php:

<?php
echo 'hi';
?>

The problem is that I don't get a response via xht.responseText and with xht.responseXML I get null and with xht.status I get 0.

I asked the link http://localhost:9999//a.php via browser and got hi correctly.

P.S: I tried this on Chrome 29.0.1547.18 and Maxthon v4.1.1

any ideas..

4

2 回答 2

4

你不用提了"http://localhost"

主要错误是您将输入类型指定为 Submit 如果是提交,则表单将首先提交,单击事件将不会触发。将输入类型更改为按钮。如果您想提交表单,请在 java 脚本中执行

更正后的代码如下。

<form id="form1" name="form1" method="post" action="">
  btn
  <input name="btn" type="button" id="btn" onClick="testAJAX();" value="Submit" />
   // change type to button
</form> 

var xht = new XMLHttpRequest();
    function testAJAX()
    {
        xht.open("get","a.php", true); /// Change to a.php
        xht.send();
        xht.onreadystatechange=function() { 
            if (xht.readyState==4) {
                alert("Text: "+xht.responseText);
            }
        }
    }
于 2013-08-03T15:34:04.397 回答
0

除了SarathPrakash的回答之外,我想指出指定 localhost 没有任何问题。只要 PHP 文件的地址有效,它仍然可以工作。

你也可以有提交按钮。但是您必须按如下方式修改表单开始标记:-

<form id="form1" name="form1" method="POST" action="" onsubmit="return false">

这将停止提交表单的默认行为。尽管在我看来,最好完全避免它,并坚持将正确的事件处理程序分配给 onclick 属性。

此外,最好遵循 HTML 文档的正确语法。

<html>
 <head>
  <title> Your title here </title>
  <script type="text/javascript"> Your script here </script>
 </head>
 <body>
  Your main document text here. Forms, tables etc.
 </body>
</html>

对于一个简单的教程,你可以试试这个

于 2013-08-03T16:13:14.567 回答