如何从jQuery中的ajax调用返回值?
看看我的代码:如何从jQuery中的ajax调用返回值?,jquery,ajax,Jquery,Ajax,看看我的代码: function dialogTexts() { var langText = $.ajax({ type: 'GET', url: '/main/getdialogtexts', dataType: 'json' }); langText.done(function(data) { //data contains a array returned correctly from php
function dialogTexts() {
var langText = $.ajax({
type: 'GET',
url: '/main/getdialogtexts',
dataType: 'json'
});
langText.done(function(data) {
//data contains a array returned correctly from php
//The data.delete is returned correctly from php. data.delete contains a string
return data.delete;
});
langText.fail(function(ts) {
alert(ts.responseText);
});
}
调用上述函数时,变量lang
为什么会得到undefined
var lang = dialogTexts();
不能从异步ajax调用返回值。只能从回调中获取其值。除非您使用
async:false
,否则不建议使用该选项,因为它会在请求挂起时冻结UI
看
你是说
async:false
?好的,谢谢!也许我累了,但我不太明白如何从回调函数返回。我尝试在DialogText(函数(text))中使用一个返回,然后尝试var lang=DialogText(),但这当然行不通。您的代码可以运行,但我想将回调的returnvalue存储到一个变量中。@bestprogrammerintheworld看看您是如何拥有两个内部函数的?您为其中一个添加了返回值,但DialogText
没有返回任何内容。即使您试图设置从内部处理程序在dialogText
中返回的变量,dialogText
也会在调用回调时返回,并且会在设置变量之前返回值。
function dialogTexts(callback) {
var langText = $.ajax({
type: 'GET',
url: '/main/getdialogtexts',
dataType: 'json'
});
langText.done(function(data) {
//data contains a array returned correctly from php
callback(data.delete)
//The data.delete is returned correctly from php. data.delete contains a string
return data.delete;
});
langText.fail(function(ts) {
callback(false);
});
}
dialogText(function(text) {
alert(text);
})