我这里有个小密码。
你能解释一下这段代码到底是干什么用的吗。请。
在脚本中,这里是ajax调用:
$.ajax({
url : "{% url 'upload_document' %}",
type: "POST",
data : {csrfmiddlewaretoken: document.getElementsByName('csrfmiddlewaretoken')[0].value,
title: document.getElementById('title').value,
//document: document: document.getElementById('document'),
},
dataType : "json",
success: function( response ){
if(response == "True"){
// success
}
else {
//append errors
}
}
});ajax在django中是如何工作的,我们如何在视图中使用ajax请求。
在这里,我的观点views.py
def upload_document(request):
print request.POST
print request.FILES
if request.is_ajax():
if request.method == 'POST':
form = UploadForm(request.POST, request.FILES, user = request.user)
if form.is_valid():
form.save()
return HttpResponse(simplejson.dumps('True'), mimetype = 'application/json' )
else:
errors = form.errors
return HttpResponse(simplejson.dumps(errors), mimetype = 'application/json' )提前谢谢。
发布于 2014-02-17 13:07:47
通常,$.ajax方法发送异步http请求。
你可以读到它,这里。
第一个参数是url,我们在那里发送请求。
第二,请求方法可以是获取、发布、放置、删除等参见维基。
第三个参数是带数据的键值字典,在服务器端使用.在django中,您可以在request.POST中访问它(如果是post请求)
第四个参数是函数,它在服务器成功返回响应时调用。您不需要此函数中的if语句,因为当请求失败或服务器不提供响应时,或者服务器返回错误(例如,类似于40*代码),该函数将不会被调用。
这个函数使用一个参数和服务器的响应。您需要处理这些数据,例如,向用户显示像Invalid data, please correct errors...或Valid data. your request is in process now.这样的消息以及类似的人员。
最后一个参数是服务器响应的数据类型。jQuery足够聪明地为您解析JSON或html,因此在本例中,响应(成功函数的参数)是纯JS对象,从json反序列化。
在服务器端(Django视图)中,必须对请求的数据进行一些验证。用它做点什么。例如,将其保存到数据库中。当我必须实现ajax表单处理时,我会这样做:
if request.method == 'POST':
response = {}
form = UploadForm(request.POST, request.FILES, user = request.user)
if form.is_valid():
form.save()
response['success'] = 1
else:
response['success'] = 0
response['errors'] = dict(form.errors)
return HttpResponse(simplejson.dumps(response), mimetype = 'application/json' )在客户端,在js中,类似这样的
$.post('/url/to/view',
function(json){
if(json['success']){
alert('Yahooo! Successfull request')
}
else{
alert('Oooops. Looks like you send invalid data')
}
}, 'json')祝好运!
https://stackoverflow.com/questions/21828468
复制相似问题