jQuery AJAX。返回值不确定吗?

浏览:26日期:2024-02-15
如何解决jQuery AJAX。返回值不确定吗??

该$.ajax()调用只是启动ajax操作。然后,代码进入您的console.log语句,但ajax调用尚未返回。因此,s尚未设定的值。

稍后,ajax调用将返回您的结果,并在那时触发您的回调。因此,如果要引用返回的值,则应s在回调内部引用变量。

更好的方法通常是这样的:

$.ajax( {type: 'POST',url: ajaxurl,data: {action: 'get_info'},success: function(r){ s = r.s; // Do something with s here...} });

如果确实需要,则可以s在回调之外进行引用,但如果需要,则需要放置某种机制以确保s已初始化(即,您的ajax调用已返回)。这引入了其他复杂性,例如同步和错误处理,并且可能使程序流程变得不可靠。

解决方法

我有该代码:

var s,d,p = ’’;$.ajax( {type: 'POST',url: ajaxurl,data: {action: 'get_info'},success: function(r){ // r contain that json data // {'s':'long-string','d':'string','p':'string'} // That served from the server with that header // // header(’Cache-Control: no-cache,must-revalidate’); // header(’Expires: Mon,26 Jul 1997 05:00:00 GMT’); // header(’Content-type: application/json’); d = r.d; s = r.s; p = r.p;} });// And here console return s as undefinedconsole.log(s);

有什么问题的想法吗?

相关文章: