Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 在jQuery模板中显示来自ajax的JSON响应文本_Django_Jquery_Jquery Templates - Fatal编程技术网

Django 在jQuery模板中显示来自ajax的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

我需要将ajax调用的响应传递到jquery模板。响应json的格式没有错误。我已使用ajax fn中的警报语句对此进行了检查。当响应传递到模板时,它不会被识别。例如,当我在模板中使用${field1},浏览器中未显示任何内容。浏览器中未显示任何错误消息。是否有人可以帮助我解决此问题

来自服务器的Json响应:

    { 
        "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");
   });
}