问题:
当我点击我的HTML提交按钮,形成它调用Ajax请求的JavaScript函数。 - 成功返回,但结果几乎立即消失。结果消失
我只是想知道,如果我在这里失去了一些东西(除了jQuery的,这是我所知道的是一个简单的方法,但XMLHttpRequest是当前要求)
我已经贴上我的代码如下 - 也许我错过了一点小错误(我希望)自从我专注于Ajax以来已经有一段时间了。
HTML代码:
<body>
<form>
<label>Name:</label>
<input type="text" id="name" value="test1" placeholder="Your name" >
<label>Email:</label>
<input type="email" id="email" value="[email protected]" placeholder="Your email" >
<label>Country:</label>
<input type="text" id="country" value="test3" placeholder="Your country" >
<input type="submit" value="Submit Form" onclick="postRequest()" >
</form>
<div id="repsonse"></div>
<script src="scripts.js"></script>
</body>
的JavaScript:
function postRequest()
{
//data from the form
var name = document.getElementById('name').value;
var email = document.getElementById('email').value;
var country = document.getElementById('country').value;
var submitForm = "submitForm";
//ajax objects
var http = new XMLHttpRequest();
var url = "functions_ajax.php";
var params = JSON.stringify({ callFunction : submitForm, name : name, email : email, country : country });
//alert(params);
//Deal with ajax components
http.open("POST", url, true);
http.setRequestHeader("Content-type", "application/json; charset=utf-8");
http.send(params);
http.onreadystatechange = function() {
//alert("Checking Status "+http.status+" "+http.readyState);
if(http.readyState == 4 && http.status == 200) {
//Return the data from the ajax request
console.log(http.responseText);
document.getElementById("repsonse").innerHTML = "<h1>Success!</h1>";
}
else
{
console.log(http.responseText);
console.log(http.status);
document.getElementById("repsonse").innerHTML = "<h1>No Cigar! HTTP Status == "+http.status+" </h1>";
}
}
}
当你说结果消失时,你的意思是它被“没有雪茄!”取代。消息,还是innerHTML刚刚恢复为空白? –
它回到空白 –
你有任何其他的JavaScript代码,可能会设置该div的innerHTML?你有没有可以分享的主机输出? –