我正在对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();