Django Ajax Post - иногда работает

У меня есть приложение Django, в котором я использую AJAX для создания сообщения при отправке формы. Моя проблема в том, что я должен задать URL в моем JavaScript?

JavaScript snippet:

   $.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 snippet:

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

Моя проблема в том, что иногда вышеуказанное работает, а иногда нет. Когда это не происходит, я получаю:

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

Когда я вижу это, я удаляю часть поиска из url в моем JavaScript. Иногда это работает, а иногда нет.

Есть предложения?

Для определения пути абсолютного следует начинать с косой черты, иначе запрос будет отправлен по пути относительно текущего, поэтому /search вместо search:

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

Вы также можете работать с тегом шаблона {% url … %} [Django-doc], что более удобно:

$.ajax({
    url: "{% url 'do_post' %}",
    // …
},
Вернуться на верх