如何访问jquery ajax调用返回的数据?$ .ajax(...)之外;

Sco*_*lan 7 ajax jquery

如何从jquery ajax调用访问数据返回.$ .ajax()之外.

//Reloads the inital page
function jobexist( jobname )
{
   var dataString = 'jobname=' + jobname;
   var found = false;

   $.ajax(
   {
      type: 'POST',
      url: "/genode/jobs/jobexist.m",
      data: dataString,
      dataType: 'json',
      success: function(data)
      {
         alert("Passed");
         if( data.result == 0 )
         {
            found = true;
          }else{  
            found = false; 
          }
      },
      error: function( data )
      {
         alert("Login Failed");
         return -1; //alert(data);
      }
   });

   if( found == true )
   {
       alert("found!")'
       return true;
   }else{
       alert("not found!");
       return false;
    }
}



if( !jobexist(jobname) )
{
    $("#jobname_error").text("This jobname already exist.");
    $("#jobname_error").show();
    return false;
}
Run Code Online (Sandbox Code Playgroud)

waj*_*jiw 2

Ajax 异步工作,因此您的 if find 语句将在 ajax 调用完成之前被命中。

您可以做的是从 ajax success 函数内部调用一个函数,并将您想要的任何数据传递给它

function found(data){

   if( data.result == 0 )
   {
       alert("found!")
       return true;
   }else{  
       alert("not found!");
       return false;
   }
}

$.ajax(
   {
      type: 'POST',
      url: "/genode/jobs/jobexist.m",
      data: dataString,
      dataType: 'json',
      success: function(data)
      {
         alert("Passed");
         found(data);
      },
      error: function( data )
      {
         alert("Login Failed");
         return -1; //alert(data);
      }
   });
Run Code Online (Sandbox Code Playgroud)