我需要编写一个函数,为我准备一个HTML来放入我的网站,我试过这样的
function prepareHTML(valId){
$.ajax({
type: "POST",
url: "SOAPulr_getData",
data: {operationId: valId}
})
.done(function(result, status, jqXHR){
var def = $.Deferred();
var response = jqXHR.responseText;
var outputHTML;
[... here i generate HTML code ...]
def.resolve(outputHTML);
return def.promise();
});
}
现在,当我尝试运行这个函数时:
prepareHTML(22)
.done(function(data){
console.log(data)
});
我得到一个错误:TypeError:prepareHTML(…(未定义当我运行prepareHTML(22(时,控制台中没有错误。
我做错了什么?
--
向致以最良好的问候
ssnake
prepareHTML
没有return
语句,因此返回undefined
return $.ajax...
是的,我可以这样做:
function prepareHTML(valId){
res = $.ajax({
type: "POST",
url: "SOAPulr_getData",
data: {operationId: valId}
});
return res.promise();
}
它可以工作,但我必须将我的HTML生成为done函数:
prepareHTML(22).done(function(result, status, jqXHR){
var response = jqXHR.responseText;
[... here i generate HTML code ...]
});
问题是:是否可以预先处理响应,以便在完成的功能中准备好HTML
我需要这样的东西:
prepareHTML(22).done(function(myHTML){
// here I need ready HTML code prepared into prepareHTML() function
$("#myId").html(myHTML);
});