Ajax 调用重新加载页面,而不是调用回调函数
ajax call reloading page and not calling callback function
我搜索并看到许多人提出类似的问题,但没有一个回答/帮助我的问题。
下面是我用来执行 ajax 调用的 js 代码。 该帖子有效,当我使用 firebug 浏览代码时,我可以在响应中看到返回消息。 但不调用回调函数。 运行测试行并重新加载页面。我缺少什么才能使回调函数正常工作而页面不刷新?同样在Firebug中,我可以在this.xmlhttp下看到:onreadystatechange = callback();
这是代码:
function testajax() {
params = 'action=testing';
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("POST", "afs_controller", true);
xmlhttp.onreadystatechange = callBack;
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(params);
//just test line;
msg = 'testing;';
}
function callBack() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
handleReturn(xmlhttp.responseText);
} else {
failedCallBack(xmlhttp.responseText);
}
}
function handleReturn(responseText) {
document.getElementByID(displayDiv).innerHTML = responseText;
document.getElementByID(displayDiv).style.display = 'block';
}
function failedCallBack(responseText) {
var msg;
msg = responseText;
msg = msg + ' here';
//handle here;
}
在我的帖子中没有提到JAVA,所有显示的代码都是javascript。
我没有发布 JAVA 代码,不应该需要。 我得到的回复很好。使用 firebug,我可以看到 send() 之后的就绪状态更改,并且可以在 firebug 的控制台中看到返回的文本。
不知道你为什么感到困惑。 也许你应该重新阅读这篇文章。
创建了一个工作正常的小提琴。所以不确定你这边出了什么问题。
另一件事:尝试在使用之前定义您的变量:
function testajax() {
var params = 'action=testing';
var xmlhttp;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("POST", "/echo/json", true);
xmlhttp.onreadystatechange = callBack;
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(params);
}
XMLHttpRequest的优秀示例页面:http://www.openjs.com/articles/ajax_xmlhttp_using_post.php
只是问:为什么不使用jQuery?
例:
$.ajax({
type: 'POST',
url: 'afs_controller',
data: {
'action': 'testing'
},
success: handleReturn,
error: failedCallBack
});
相关文章:
- 为什么(如何)'这'从函数内部调用回调时发生更改
- 在初始函数完成之前调用回调函数
- Node.js exec调用从不调用回调
- 如何从参数数组中调用回调
- 如何在调用回调之前禁用按钮
- 加载文件,然后调用回调函数
- async.retry-已调用回调
- 节点.js“已调用回调”.但是没有任何其他回调
- JavaScript - 返回承诺和/或调用回调
- 解析查询.首次成功/错误 间歇性不调用回调
- 如何使用另一个 JavaScript 文件中定义的类名调用回调函数
- ReactJs:this.setState的情况下不调用回调函数
- $.post到PHP文件-在包含循环完成之前不会调用回调
- 异步加载ASP.NET绑定的Javascript,然后调用回调
- setTimeout()在其设置时间之前连续调用回调函数
- 在其他回调js中调用回调
- Ajax 调用重新加载页面,而不是调用回调函数
- Angularjs $http.get 不调用回调
- 未调用回调函数
- jQuery JSONP 不调用回调