非常新的ajax并尝试使ajax请求函数可以重用。 Firebug说请求正在通过我的php文件返回正确的数据。但是,响应没有插入到我的html中的div中。这是我的代码:
function ajaxRequest(url, method, data, asynch, responseHandler)
{
var request = new XMLHttpRequest();
request.open(method, url, asynch);
if (method == "POST"){
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
}
request.onreadystatechange = function()
{
if (request.readyState == 4) {
if (request.status == 200) {
responseHandler(request.responseText);
}
}
}
request.send(data);
}
function changeText() {
var data = "";
ajaxRequest("../PHP/CODE/changeText.php", "Get", data, true, insertNewText);
}
function insertNewText() {
var response = request.responseText;
var testDiv = document.getElementById("rightColumn");
testDiv.innerHTML = response;
}
答案 0 :(得分:1)
变化:
function insertNewText() {
var response = request.responseText;
var testDiv = document.getElementById("rightColumn");
testDiv.innerHTML = response;
}
到
function insertNewText(html) {
var testDiv = document.getElementById("rightColumn");
testDiv.innerHTML = html;
}
答案 1 :(得分:0)
您使用insertNewText作为响应处理程序。
看看:
if (request.status == 200) {
responseHandler(request.responseText);
}
在这段代码中,responseHandler是函数回调,在你的上下文中,这是insertNewText
你可以在中看到
responseHandler(request.responseText);
将responseText传递给它
但是在insertNewText签名中,你不处理这个
总结:
function insertNewText() {
var response = request.responseText;
var testDiv = document.getElementById("rightColumn");
testDiv.innerHTML = response;
}
应该是:
function insertNewText(response) {
var testDiv = document.getElementById("rightColumn");
testDiv.innerHTML = response;
}
瞧!