Django 在jQuery模板中显示来自ajax的JSON响应文本
我需要将ajax调用的响应传递到jquery模板。响应json的格式没有错误。我已使用ajax fn中的警报语句对此进行了检查。当响应传递到模板时,它不会被识别。例如,当我在模板中使用${field1},浏览器中未显示任何内容。浏览器中未显示任何错误消息。是否有人可以帮助我解决此问题 来自服务器的Json响应:Django 在jQuery模板中显示来自ajax的JSON响应文本,django,jquery,jquery-templates,Django,Jquery,Jquery Templates,我需要将ajax调用的响应传递到jquery模板。响应json的格式没有错误。我已使用ajax fn中的警报语句对此进行了检查。当响应传递到模板时,它不会被识别。例如,当我在模板中使用${field1},浏览器中未显示任何内容。浏览器中未显示任何错误消息。是否有人可以帮助我解决此问题 来自服务器的Json响应: { "field1": 23432434, "field2": "sometext", } 阿贾克斯fn: function
{
"field1": 23432434,
"field2": "sometext",
}
阿贾克斯fn:
function getinfo(uri)
{
jQuery.ajax({
url: 'http://{{request.META.SERVER_NAME}}'+uri,
success: function(info) {
return info;
},
async: false,
dataType: 'jsonp'
});
}
模板:
<script id="infoTemplate" type="text/x-jQuery-tmpl">
<div>${field1}</div>
</script>
回调不是这样工作的。您将信息返回到回调函数,而不是getinfo
您要么像您在之后建议的那样做,要么将ajax调用的结果保存在一个全局var中,并在while之后调用tmpl函数,以确保您已经从ajax调用中得到了答案。第一条路是走的路。尝试使用jsonp作为数据类型。@citizen conn-不走运!顺便说一句,你有很多问题的答案没有被接受。你应该解决这个问题,否则其他用户将来可能不想帮助你。我打算返回一个JSON对象,并将其作为参数传递给{{tmpl}。我不确定这是否是正确的方法。目前,我选择了我在笔记中提到的方法。如果你能解释为什么前一种方法不起作用,那将非常有帮助。前一种方法不起作用,因为你的getinfo没有返回任何东西。当你返回信息;成功后,您将信息返回到回调函数,该函数由jQuery调用并丢弃,而不是返回到getinfo函数。如果这次我能说得更清楚,请告诉我。我明白了!谢谢你的解释。
<script id="Template1" type="text/x-jQuery-tmpl">
{{tmpl(getinfo(uri)) "#infoTemplate"}}
</script>
function getinfo(uri)
{
$.getJSON('http://{{request.META.SERVER_NAME}}'+uri, function(data) {
$("#infoTemplate").tmpl(data).appendTo("#somedivid");
});
}