我无法运行简单的ajax脚本。代码应该非常简单。 ajax脚本是:
<html>
<head><title>Testing ajax</title>
<script type="text/javascript">
function ajax() {
var xmlhttp;
var fname=document.getElementById("fname").value;
if(window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest();
} else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("output").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajax.php?fname="+fname,true);
xmlhttp.send();
}
</script>
</head>
<body>
<form>
<input type="text" id="fname">
<input type="text" id="lname">
<input type="submit" id="submit" onclick="ajax()">
</form>
<div id="output"></div>
</body>
php脚本是:
<?php
$fname=$_GET['fname'];
echo "<p>Hello ".$fname."</p>";
?>
我也尝试过:
xmlhttp.open("POST","ajax.php",true);
xmlhttp.setRequestHeader("Content-type","application/pass-data");
xmlhttp.send("fname="+fname);
我既不能得到post也没有get方法来发送数据。我没有看到简单的事情吗?
答案 0 :(得分:3)
它无法正常工作的原因是您的输入位于<form>
标记内。删除表单标记后,当我尝试将<input type="submit" />
控件更改为
<input type="button" onClick="ajax()" value="Submit" />
它就像一个魅力。我怀疑表单行为由于提交时的某些好处,安全问题等而处理不同。
答案 1 :(得分:0)
将输入类型从提交更改为按钮
输入类型=“按钮”onclick = ...
因为当您单击按钮时,如果type =“submit”,它将立即提交页面。