如何在Javascript文件中使用Django url模板

如何在Javascript文件中使用Django url模板,javascript,django,ajax,Javascript,Django,Ajax,我正在使用Django3.1,我想知道如何在Javascript文件中使用DjangoURL模板。我正在尝试实现AJAX,当我尝试在Javascript文件中使用以下命令(而不是在HTML文件的脚本标记中)打开连接时: 未分析该模板。但是,如果我在HTML文件的脚本标记中使用Javascript代码,它就可以正常工作。可以在JS文件中使用Django模板吗?如何使用?一种简单的方法是将html中的所有URL保存到javascript变量中,然后使用.js文件中的这些变量 在html中,您将有如下

我正在使用Django3.1,我想知道如何在Javascript文件中使用DjangoURL模板。我正在尝试实现AJAX,当我尝试在Javascript文件中使用以下命令(而不是在HTML文件的脚本标记中)打开连接时:


未分析该模板。但是,如果我在HTML文件的脚本标记中使用Javascript代码,它就可以正常工作。可以在JS文件中使用Django模板吗?如何使用?

一种简单的方法是将html中的所有URL保存到javascript变量中,然后使用
.js
文件中的这些变量

在html中,您将有如下内容

<script language="Javascript">
   var check_user_url = "{% url 'checkUser' %}";
</script>

谢谢,@Andrey Maslov,但这正是我想要避免的:将Javascript和HTML放在同一个文件中。但是,根据你的回答,我认为Django没有办法解析JS文件。我认为有办法。您可以生成
.js
文件作为其他
.html
模板,但这不是一个好主意,因为通常您希望静态文件由服务器缓存。您是对的。Django设计人员没有包括对AJAX请求的完全支持。根据您的评论,我看到了3个选项:(1)在同一个HTML文件中包含javascript代码,(2)使用单独的文件,不要使用URL.py中的命名链接,或者(3)使用额外的HTML文件只包含javascript代码。我不知道哪个选项最差。您可以使用
data-*
选项来存储
.js
文件所需的所有数据,而无需在
html
模板中使用javascript
<script language="Javascript">
   var check_user_url = "{% url 'checkUser' %}";
</script>
var xmlhttp = new XMLHTTPRequest();
xmlhttp.open("GET", check_user_url + "?username=" + encodeURIComponent(username.value), true);