如何获得的数据进行JQuery.post功能

的我在JS一种新的,但我无法相信我已经无法想出解决办法...如何获得的数据进行JQuery.post功能

是myerr中全局定义。 我将myerr =设置为来自帖子的返回值。 一旦我脱离功能,它就会失去它的价值。

myerr=""; 

$.post("/rpc/validate_song_entry", {'title':$('#title').val()}, function(data){

alert(data.title); //----> Alerts expected result.

myerr=data.title;

alert(myerr); //-----> Alerts expected result.

}, "json");

alert(myerr); //-------> Nothing. Blank dialog.

在我看来,这是一个变量范围的问题,但我看不出...

编辑: 我下面贴这个,但不知道如何删除它... 我现在明白这个帖子是异步完成的。这是有道理的。没有意义的是,按照您看到的顺序弹出警报。我希望最后一次警报(空白的一个)先出现。它不是。它最后出现。

我希望post函数内的警报最后出现。任何人都可以解释吗?

回答:

您neesd使用jQuery.ajax,你需要设置async :false

,因为你的$。员额是一个异步请求,之后异步请求不等待异步函数完成的功能。这就是为什么您的警报无需打印,因为它在$ .post完成之前执行。所以你需要做的要求同步,那么你的函数执行后,警报将运行

myerr=""; 

$.ajax({

url: "/rpc/validate_song_entry",

type: "POST",

data: {'title':$('#title').val()},

async:false,

success: function(data){

myerr=data.title;

}

}

);

alert(myerr);

回答:

这是因为后完成异步。您必须为您的问题使用$ .ajax,并将其设置为异步。

//编辑:也看看是:$。员额(...),因为它是异步完成后执行内部Using $.post within a javascript function, cannot assign value to a variable?

回答:

功能。你的警报(myerr)在myerr被设置之前马上执行。

以上是 如何获得的数据进行JQuery.post功能 的全部内容, 来源链接: utcz.com/qa/259766.html

回到顶部