django ajax发布到意外url
我的建议如下:django ajax发布到意外url,ajax,django,Ajax,Django,我的建议如下: <script> $(document).ready(function () { $.ajaxSetup({ data: {csrfmiddlewaretoken: '{{ csrf_token }}'} }); $("#submit").submit(function () { var title = $("#title").val();
<script>
$(document).ready(function () {
$.ajaxSetup({
data: {csrfmiddlewaretoken: '{{ csrf_token }}'}
});
$("#submit").submit(function () {
var title = $("#title").val();
var body = $("#body").val();
var images = $("#browsefile")[0].files[0];
$.ajax({
type: "POST",
data: {title: title, body: body, images: images},
url: "{% url 'xxxxx' %}",
success: function (result, statues, xml) {
alert(result);
},
error: function () {
alert("false");
}
})
})
})
</script>
from django.conf.urls import url
from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static
from blog import views
urlpatterns = [
url(regex=r'^add/$', view=views.add, name='bbb'),
url(regex=r'^newBlog/$', view=views.addblog, name='xxxxx'),
]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
我将ajax数据发布到addblog方法中,但我得到的是
post/add/HTTP/1.1
。任何人都可以告诉我哪里出错了,谢谢 尝试添加event.preventDefault()在submit函数中使用code>,以禁用表单的默认行为,即遵循action属性
$("#submit").submit(function (event) {
event.preventDefault();
var title = $("#title").val();
var body = $("#body").val();
var images = $("#browsefile")[0].files[0];
formdata = new FormData();
formdata.append("images", images);
formdata.append("body", body);
formdata.append("title", title);
$.ajax({
type: "POST",
data: formdata,
url: "{% url 'xxxxx' %}",
success: function (result, statues, xml) {
alert(result);
},
error: function () {
alert("false");
}
})
return false;
})
编辑:
每个评论。您能给我们看一下您的整个url.py
文件吗?@Algorithmatic好的,我重新编辑了我的url.py文件我在视图中设置了一个断点。当ajax发布数据时,它总是输入add方法,而不是addblog方法。在呈现页面后,您可以检查ajax代码片段中url
的值吗?您可以通过在浏览器中检查html的源代码来实现这一点。@Algorithmatic我尝试过,页面中的url是url:“/newBlog/”我解决了这个问题。我在post数据中设置了fileobj,这是禁止的。我从中得到了一个解决方案,它告诉我需要创建一个FormData来放入fileobj,并将FormData作为数据发布。