jQuery ajax返回值

如何从jquery ajax返回值“ pinNumber ”,以便我可以将其附加到ajax之外。 这是我的代码

 var x = pinLast + 1;
     for(i = x; i <= pinMany; i ++){
         var i = x ++;
         var cardNumber = i.toPrecision(8).split('。')。reverse()。join('');
         var pinNumber ='';

         jQuery.ajax({
            类型:“POST”,
             url:“data.php”,
            数据:“request_type = generator”,
             async:false,
            成功:函数(msg){
                 var pinNumber = msg;
                 return pinNumber;
                 //引脚号应该返回
             }
         });

         jQuery('。pin_generated_table')。append(cardNumber +'='+ pinNumber +' 
“); //变量pinNumber应该能够到达这里 }

如果你不明白,请问我.. ^^谢谢

默认情况下,AJAX是异步的,你不能在不进行同步调用的情况下从回调中返回值,这几乎肯定是你不想做的。

您应该为success: handler提供一个真正的回调函数,并将您的程序逻辑放在那里。

 var pinNumber = $.ajax({ type: "POST", url: "data.php", data: "request_type=generator", async: false }).responseText; jQuery('.pin_generated_table').append(cardNumber+' = '+pinNumber+' '); 

它与变量范围有关 。 您创建的局部变量pinNumber在其包装函数之外是不可访问的。

也许在全局声明pinNumber或者它是否会成功,只需将你的.append()放在你的成功函数中。

 var _successEvent = function(response){ $('.pin_generated_table').append(cardNumber + ' = ' + response); }; $.ajax({ type: "POST", url: "data.php", data: "request_type=generator" }).done(_successEvent); 

您可以使用此示例:

window.variable = 'some data';

这使您可以变量全局,您可以从任何地方访问它

这是一个简单的解决方案。

  //---------------------------Ajax class ------------------------------// function AjaxUtil() { this.postAjax = function(Data,url,callback) { $.ajax({ url: url, async: true, //must be syncronous request! or not return ajax results type: 'POST', data: Data, dataType: 'json', success: function(json) { callback(json); } }); }//--end postAjax } //--------------------------------End class--------------------// var ajaxutil = new AjaxUtil(); function callback(response) { alert(response); //response data from ajax call } var data={}; data.yourdata = 'anydata'; var url = 'data.php'; ajaxutil.postAJax(data,url,callback);