原型中的 AJAX 响应文本检索
在基于原型的 AJAX 开发中,获取响应文本可能具有挑战性。一种常见的方法是利用 onComplete 回调,如下所示:
somefunction: function() { var result = ""; myAjax = new Ajax.Request(postUrl, { method: 'post', postBody: postData, contentType: 'application/x-www-form-urlencoded', onComplete: function(transport) { if (200 == transport.status) { result = transport.responseText; } } }); return result; }
但是,由于 AJAX 请求的异步特性,这种方法通常会导致结果变量为空。 onComplete 回调在 somefunction 完成后调用,导致时间不匹配。
要解决此问题,必须将回调函数作为参数传递给 somefunction。此回调将在 AJAX 操作完成时执行,如下面更正后的代码所示:
somefunction: function(callback){ var result = ""; myAjax = new Ajax.Request(postUrl, { method: 'post', postBody: postData, contentType: 'application/x-www-form-urlencoded', onComplete: function(transport){ if (200 == transport.status) { result = transport.responseText; callback(result); } } }); } somefunction(function(result){ alert(result); });
在此场景中,回调函数在 onComplete 处理程序中调用,确保响应文本可用当主函数完成时。然后,传递的回调可以使用响应文本进行进一步处理。
以上是如何在 Prototype.js 中可靠地检索 AJAX 响应文本?的详细内容。更多信息请关注PHP中文网其他相关文章!