gpt4 book ai didi

javascript - 通过使用回调重用我的 AJAX post 函数

转载 作者:行者123 更新时间:2023-12-02 20:23:26 25 4
gpt4 key购买 nike

我有一个 AJAX post 函数,用于我的服务器和用户网页之间的通信。但是我在可重用函数中处理服务器的响应时遇到问题。

如果您看到以下示例,您将看到函数 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";
}
}

我不熟悉将函数作为参数传递(我认为它们称为回调?)并且我不确定我是否正确执行?

最佳答案

我猜你需要做的是从回调参数中删除括号

在您的 emailLoginDetails() 函数中:

post( "forgotPass.py", emailParam, outputEmailDetailsResult );

关于javascript - 通过使用回调重用我的 AJAX post 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5214036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com