Why can I not return responseText from an Ajax function? [duplicate]
You will not be able to handle the return value that you are returning from your asynchronous callback. You should handle the responseText
within the callback directly, or call a helper function to handle the response:
http.onreadystatechange = function () { if (http.readyState == 4 && http.status == 200) { handleResponse(http.responseText); }}function handleResponse (response) { alert(response);}
What about :
function handleResponse (response) { return response;}
which return undefined for synchrounous and asynchronous modes
function getdata(url,callback){ var xmlhttp; 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) { var result = xmlhttp.responseText; callback(result) } } xmlhttp.open("POST",url,true); xmlhttp.send();}
send a call back function name as second arguement to this function.You can get the response text for that function. simple. But you can't directly return anything from an asynchronous call.