我有一个Django应用程序,我在提交表单时使用AJAX做一个帖子。我的问题是我在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:"/search/do_post/",
// …
},
也可以使用{% url … %}
模板标签[Django-doc]更方便:
$.ajax({
url:"{% url 'do_post' %}",
// …
},