原型中的 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中文網其他相關文章!