如果您在当前页面上发帖,您可以执行以下任一操作:
$.post(window.location.pathname, {
name: "test"
});
$.post('.', {
name: "test"
});
如果您在另一个页面上发布,您可以在您的 url 中使用令牌并将其作为变量传递给您的模块:
<script>
var url = '{% url my-url "{token}" %}';
$.post(url.replace('{token}', 'param'), {
name: "test"
});
</script>
{token}
请注意,令牌应该与正则表达式类型匹配才能成功解析(如果参数是用 定义的,则不能使用\d+
)。
我对这个解决方案有点不满意,最后我编写了自己的应用程序来使用 django 处理 javascript:django.js。有了这个应用程序,我可以:
{% load js %}
{% django_js %}
<script>
Django.onReady(function() {
$.post(Django.url('my-url', 'param'), {
name: "test"
});
});
</script>
只有在Django.onReady()
提前发布并且需要等待 Django.js 准备好时才需要包装。我是一个真实的案例,你只需要做
$.post(Django.url('my-url', 'param'), {
name: "test"
});