jquery ajax 获取 HTML 但不会返回它
jquery ajax gets HTML but will not return it
可能的重复项:
如何从函数返回 AJAX 调用的响应?
我正在尝试通过ajax获取一些HTML内容。但是出于某种原因,尽管 HTML 使其进入 ajax 函数,但当我尝试将其用作返回值时,我得到了undefined
.
喜欢这个:
function get_additional_options(name) {
var post = $.ajax({
type: 'post',
url: 'order_queries_templates/html/' + name + '_additional_options.php?<?=time()?>',
//data:'product_id=' + product_id,
dataType: 'html'
});
post.done(function (p) {
console.log(p); //prints out all the HTML just as I would expect
return p;
});
}
但是当我尝试让 HTML 像这样将其附加到我的页面时
if (has_additional_options == "t"){
var html_to_append = get_additional_options(name);
console.log(html_to_append); // undefined
}
如果我使用 done()
方法,或者只是将值作为成功回调返回,则结果相同。我的错误是什么?
不能从异步调用的函数返回值。
您应该返回 post
(即 $.ajax
的结果),然后在函数外部注册一个.done
处理程序:
function get_additional_options(name) {
return $.ajax({
...
});
};
if (has_additional_options == "t") {
get_additional_options(name).done(function(p) {
console.log(p);
});
// NB: code execution continues here immediately - don't do anything
// else here - all further stuff must be done in the above callback
}
您将在匿名函数中返回 HTML 值。你基本上是把它传递给post.done方法。
也许在这种情况下使用事件会更好,因为您在此处运行异步代码。
function get_additional_options(name) {
var post = $.ajax({
type: 'post',
url: 'order_queries_templates/html/' + name + '_additional_options.php?<?=time()?>',
//data:'product_id=' + product_id,
dataType: 'html'
});
post.done(function (p) {
$("body").trigger("html_loaded",[p]);
);
}
$("body").on("html_loaded", function (htmlData) {
// Do something with your HTML data here.
$(this).append(htmlData);
});
相关文章:
- jquery返回ajax响应和用户定义的变量到函数
- 从回调函数返回 AJAX 结果
- 无法从jquery中的函数返回ajax responseText
- 为什么我不能返回 $.ajax 结果,但可以返回 $http.post 的结果
- PHP 未正确返回 AJAX 调用的 JSON
- 通过 JS 模块模式返回 ajax 响应
- 通过回调返回 AJAX
- jQuery filter() 和 find() 都返回 AJAX 响应的错误
- 从单独的文件返回 AJAX 响应文本
- JQuery从c#函数返回ajax列表
- 如何使用确认警报并返回AJAX承诺
- 从python向jquery返回ajax错误
- 在JQuery中查找PHP返回AJAX的错误
- 在返回AJAX响应之前阻止web浏览器关闭
- javascript通过自身函数返回ajax请求结果
- 如何让 JavaScript 函数返回 Ajax 结果
- 从函数返回ajax请求值
- 未返回Ajax值
- 返回Ajax -错误- Symfony2
- 从自定义函数返回ajax响应作为html到骨干视图