如何将异步 ajax 响应捕获到变量中


How to capture asynchronous ajax response into a variable?

我正在对codeigniter php函数进行以下jquery ajax调用:

    var html ="";
    $.ajax({
                        type:"POST",
                        url: "Ajax/getHtml",
                        data: { u : contents },
                        dataType: 'html',       
                        success: function(data) {
                            html = data;
                        },
                        error: function(jqXHR, textStatus, errorThrown) {
                                console.log('error');
                                console.log(jqXHR,textStatus, errorThrown);
                        }
                    });
                     console.log('html', html);

这工作正常,成功后返回 html,如果我将"数据"记录到控制台,我可以看到。但是,我似乎无法在javascript变量中捕获HTML响应。我已经在全球范围内声明了一个(html)。当我查看控制台时,我看到:

html 
jquery-2.1.1.js:8623 XHR finished loading: POST "http://localhost/b1/Ajax/getHtml".
我对javascript

没有经验,但这似乎不合时宜,所以我认为问题是javascript的异步性质会导致脚本向前移动,而无需等待ajax请求返回结果。

这有意义吗,我应该如何解决这个问题?

怕这是不可能的。

如果你想对从 ajax 返回的 html data做一些事情,你应该在 success 函数中做,或者调用另一个函数来使用 retured 值来完成这项工作。

我认为你应该尝试data.responseText();