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

时间:2015-01-25 14:56:46

标签: javascript php jquery ajax

我正在对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,但这似乎不合时宜,所以我认为问题是javascripts异步性质导致脚本继续前进而不等待ajax请求返回结果。

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

2 个答案:

答案 0 :(得分:0)

我担心这是不可能的。

如果你想对从ajax返回的html data做一些事情,你应该在success函数内部执行它,或者调用另一个使用retured值执行该任务的函数。

答案 1 :(得分:-1)

我想你应该试试data.responseText();