【问题标题】:Error: Uncaught SyntaxError: Unexpected token &错误:未捕获的语法错误:意外的令牌 &
【发布时间】:2014-02-09 09:55:49
【问题描述】:

从模型向 JavaScript 发送 JSON 数据时出现错误。看起来编码导致错误,但我找到的所有示例都对其他人有用。如何正确地将模型数据从我的视图发送到 JavaScript?

查看代码:

def home(request):
  import json
  info_obj = Info.objects.all()
  json_data = serializers.serialize("json", info_obj)
  return render_to_response("pique/home.html", {'json_data':json_data}, context_instance=RequestContext(request))

JavaScript 代码:

var data = jQuery.parseJSON('{{json_data}}');
console.log(data);

错误Uncaught SyntaxError: Unexpected token &

var data = jQuery.parseJSON('[{"pk": 1, "model": "pique.eat" ... 

【问题讨论】:

标签: javascript python django json serialization


【解决方案1】:

您必须在字符串中使用" 而不是"

字符串被render_to_response自动转义。

为避免这种情况,您必须将json_data 标记为安全。使用mark_safe

from django.utils.safestring import mark_safe
return render_to_response(
  "pique/home.html",
  {
     'json_data':mark_safe(json_data)
  },
  context_instance=RequestContext(request))

【讨论】:

  • 谢谢!我有一个类似的问题,这也帮助我解决了我的问题!
  • 太棒了。谢谢。
【解决方案2】:

您的数据是 html 编码的。它应该来自带有引号和所有内容的服务器。 render_to_response 是否在进行某种编码? json_data 在那个函数之前是什么样子的?

【讨论】:

    猜你喜欢
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 2014-11-24
    • 2012-09-07
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多