如何将异步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请求返回结果。

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

我担心这是不可能的。

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

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