2012-02-14 2 views
1

Я зову Аякса, чтобы принести значение из осины страницы и возврата в вызывающую JavaScript, и код, как показано нижевозвращаемое значение из Ajax вызова JavaScript

 
function getNameFromSession() 
{ 
    xmlhttp=GetXmlHttpObject(); 
    if (xmlhttp==null) 
    { 
     alert ("Your browser does not support AJAX"); 
     return; 
    } 
    var url="getImageName.asp"; 
    url=url+"?fetch_name=1"; 
    xmlhttp.open("GET",url,true); 
    xmlhttp.send(null); 
    xmlhttp.onreadystatechange=function(){ 

     if (xmlhttp.readyState==4) 
     { 
      alert(xmlhttp.responseText); 
      return xmlhttp.responseText; 

     } 

    } 
} 

предупреждение функция показывает правильное значение, но Javascript получить неопределенными в качестве значения, может кто-нибудь сказать мне, как я могу вернуть значение из этого Аякса JavaScript вызывающей функции

+0

, где у вас есть возвращение, сохраните значение в переменной, которая входит в область функции getNameFromSession, а затем возвращает значение перед вашей последней скобкой. – Ben

ответ

0

строка в коде

return xmlhttp.responseText; 

ли не где-нибудь т o вернуть значение. Вам нужно будет либо передать функцию обратного вызова с запросом, чтобы обработать его дальше, либо сделать это с помощью.

if(xmlHttp.readyState == 4) 

условный.

0

Это потому, что ваша основная функция, getNameFromSession ничего не возвращает.

Что вы можете сделать, это назначить ответ от вашего обработчика переменной, а затем получить переменную после вызова getNameFromSession.

0

AJAX является асинхронным, то есть запрос отправляется, а затем код продолжается. Ваше заявление о возврате происходит после того, как функция уже завершена. Вы должны перемещать все, что вам нужно, с этим возвращаемым значением в саму функцию.

0

просто синхронизировать ajax, сделав третий параметр как false в xmlhttp.open («GET», url, true). При этом он будет ждать ответа сервера, прежде чем возвращать элемент управления для вызова java-скрипта.

 
function getNameFromSession() 
{ 
    xmlhttp=GetXmlHttpObject(); 
    if (xmlhttp==null) 
    { 
     alert ("Your browser does not support AJAX"); 
     return; 
    } 
    var url="getImageName.asp"; 
    url=url+"?fetch_name=1"; 
    xmlhttp.open("GET",url,false); 
    xmlhttp.send(null); 
    xmlhttp.onreadystatechange=function(){ 

     if (xmlhttp.readyState==4) 
     { 
      alert(xmlhttp.responseText); 
      return xmlhttp.responseText; 

     } 

    } 
} 
Смежные вопросы