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);