2017-04-25 39 views
0

我的AJAX如下:Django的AJAX岗位unexpect网址

<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) 

我除了阿贾克斯后数据的方法addblog,但我得到POST /add/ HTTP/1.1代替。任何人都可以告诉我我犯了什么错误,谢谢!

+0

你能告诉我们你的整个'url.py'文件? – Algorithmatic

+0

@Algorithmatic OK,我重新修改我的urls.py文件 –

+0

我在视图中设置一个断点。当ajax发布数据时,它总是输入方法add,但不是addblog –

回答

0

尝试在提交功能附加event.preventDefault();禁用的形式,这是遵循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; 
    }) 

编辑: 根据注释。

+0

OK,我会稍后再试一个静态的HTML,感谢 –

+0

我解决了这个疑难问题设置后的数据FileObj文件,这是被禁止的。而我从http://stackoverflow.com/questions/31866920/django-ajax-upload-image解决它告诉我,我需要创建一个FORMDATA把FileObj文件中,并张榜公布FORMDATA作为数据。 –