Django Ajax Post - 有时工作

Django Ajax Post - works sometimes

我有一个 Django 应用程序,我在其中使用 AJAX 在提交表单时执行 post。我的问题是如何在我的 JavaScript 中将 URL 设置为什么?

JavaScript 片段:

   $.ajax({
        url: "search/do_post/", // the endpoint
        type: "POST", // http method
        data : {
            relevancy: relevancy,
            report_id: report_id,
            query: query_text,
            //csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val()
        },

urls.py 片段:

path("search/do_post/", do_post_view, name="do_post"),

我的问题是上述方法有时有效,有时无效。如果没有,我得到:

POST http://localhost:1227/search/search/do_post/ 404 (Not Found)

当我看到后,我从 JavaScript 中的 url 中删除了搜索部分。有时有效,有时无效。

有什么建议吗?

您应该以前导斜杠开头来定义 绝对 路径,否则请求将发送到相对于当前路径的路径,因此 /search 而不是search:

$.ajax({
    url: <strong>"/search/do_post/"</strong>,
    // …
},

你也可以使用更方便的{% url … %} template tag [Django-doc]:

$.ajax({
    url: <strong>"{% url 'do_post' %}"</strong>,
    // …
},