如何使用带有Ajax的DJANGO REST框架发出POST请求 [英] How to make a POST request using DJANGO REST framework with ajax
问题描述
这是我的模型课:
class PoliceAssurance(models.Model):
Numpolice = models.IntegerField()
Raison = models.CharField(max_length=50)
Tel = models.IntegerField()
Email = models.CharField(max_length=50)
这是我的序列化器:
class PoliceSerializer(serializers.ModelSerializer):
class Meta:
model = PoliceAssurance
fields = ('Numpolice','Raison','Tel','Email');
现在,我需要通过AJAX调用发出POST请求.谁能提供有关我如何完成此任务的信息?
Now, I need to make a POST request through an AJAX call. Could anyone please provide information on how I may approach this task?
这是我的views.py
this is my views.py
@login_required(login_url="login/")
def home(request):
return render(request,"home.html")
class PoliceViewset(generics.ListCreateAPIView):
queryset = PoliceAssurance.objects.all()
serializer_class = PoliceSerializer
和我的urls.py
and my urls.py
urlpatterns=[
url(r'^$', views.home, name='home'),
url(r'PoliceAssurance',views.PoliceViewset.as_view(), name='PoliceAssurance'),
]
这是我的ajax请求
$(#suit).click(function(){
var data = {};
data.Numpolice = $(#num).val();
data.Raison = $(#raison).val();
data.Tel = $(#tel).val();
data.Email = $(#email).val();
$.ajax({
type: "POST",
url: "/PoliceAssurance/",
data: data,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data){
alert(data);
},
failure: function(errMsg) {
alert(errMsg);
}
});
});
推荐答案
you may need to see this, http://www.django-rest-framework.org/topics/ajax-csrf-cors/#javascript-clients and django docs in this link(detail), and my code works for me well likes
$.ajax({
url: 'your web url',
type: 'POST',
beforeSend: function (xhr, settings) {
xhr.setRequestHeader("X-CSRFToken", '{{ csrf_token }}');
},
success: function (arg) {
location.reload()
}
})
Django rest框架不能像普通的django一样工作.您需要将数据中的"csrfmiddlewaretoken"转换为RequestHeader中的"X-CSRFToken"或"HTTP-X-CSRFToken"
Django rest framework not works like normal django. You need to trans "csrfmiddlewaretoken" in data to "X-CSRFToken" or "HTTP-X-CSRFToken" in RequestHeader
这篇关于如何使用带有Ajax的DJANGO REST框架发出POST请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!