我有一個AJAX發佈功能,用於我的服務器&用戶網頁之間的通信。但我在處理來自我的可重用函數中的服務器的響應時遇到了問題。通過使用回調重用我的AJAX發佈功能
如果你看到下面的例子,你會看到函數outputEmailDetailsResult()被稱爲&在行「post(」forgotPass.py「,emailParam,outputEmailDetailsResult());」上運行,即當函數是作爲參數傳遞。但是,它應該只在reation後函數內部運行到服務器響應:
var xmlhttp;
function post(dest, params, callbackFunction)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
callbackFunction;
}
}
xmlhttp.open("POST",dest,true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(params); // "fname=Henry&lname=Ford");
}
function emailLoginDetails()
{
var emailParam = "email=sam"; // + document.getElementById("forgotEmail").innerText;
alert(emailParam);
post("forgotPass.py", emailParam, outputEmailDetailsResult());
}
function outputEmailDetailsResult()
{
try
{
document.getElementById("statusOutput").value = xmlhttp.responseText;
}
catch (ex)
{
document.getElementById("statusOutput").value = "Failed to get response from server";
}
}
我是新來傳遞用作參數(我認爲他們是所謂的回調?)&我不確定我這樣做是否正確?
感謝您的回覆,雖然這不起作用 – Mack