【问题标题】:Error in parsing django variable in javascript在 javascript 中解析 django 变量时出错
【发布时间】:2020-11-02 20:26:49
【问题描述】:

我有一个 django 应用程序。我正在使用下面的代码来访问 javascript 中的 django 变量。

var pd_info = {{pd_inf|safe}};

在 Firefox 中,这是在元素列表注释后给出 Uncaught SyntaxError: missing ]:[ 在第 327 行第 15 列打开。Chrome 给出 Uncaught SyntaxError: Unexpected string

调试器显示

var ad_info = [[15.0, 1, 100000000.0, u'PHD', 5.0]];

该变量在 django 模板中运行良好。 javascript 之前也可以工作(但可能会被黑客入侵)

如何解决?

【问题讨论】:

  • 只是一个猜测,因为你还没有真正提供任何细节,是关闭开头的[ 来修复你的语法错误吗?
  • 模板过滤器输出什么?查看源代码以检查您生成的 javascript - 这应该会泄露正在发生的事情以及如何修复。

标签: javascript django


【解决方案1】:

改变这个:

var pd_info = {{pd_inf|safe}};

到这里:

var pd_info = "{{pd_inf|safe}}";

然后你可以根据需要输入convert with js。

在views.py中你可以像这样将对象转换成字符串:

def my_view_function(request):

    ...

    my_var = json.dumps(my_var)

    return render(request, 'template.html', context={'my_var' : my_var})

【讨论】:

  • 当变量包含双引号时,它会给出 Uncaught SyntaxError: unexpected token: identifier。 var cd_info = "[[1, 1, u'1234567890', u'atkral11@gmail.com', u"阿米特王国", 66.0, 66.0]]";
  • 尝试将变量感知为字符串而不是对象 - 请参阅我更新的答案。
  • 尝试发送*变量
  • 这种简单的方法以前可以很好地工作到现在。我怀疑它被黑了。强制出错..但我真的别无选择。我只需要测试页面的其他组件。无论现在对我有用。以后可以处理黑客攻击。
猜你喜欢
  • 1970-01-01
  • 2019-06-01
  • 2014-08-17
  • 2019-08-19
  • 2012-09-30
  • 1970-01-01
  • 2019-06-14
  • 2018-01-06
  • 1970-01-01
相关资源
最近更新 更多