У меня есть функция публикации AJAX, которую я использую для связи между моим сервером и веб-страницей пользователя.Но у меня есть проблема с обработкой ответа от сервера в моей функции повторного запуска.
Если вы увидите следующий пример, вы увидите, что функция outputEmailDetailsResult () вызывается и запускается в строке "post ("ForgotPass.py ", emailParam, outputEmailDetailsResult ());", т. е. когда функция передается в качестве параметра.Но он должен запускаться только внутри функции post по отношению к ответу сервера:
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";
}
}
Я новичок в передаче функций в качестве параметров (я думаю, они называются обратными вызовами?) И я не уверен, что яделать это правильно?