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' %}",
// …
},