Ajax主要作用:
把数据发到后台,但是不刷新页面,然后后台再给前端一个提示
一、发送的格式
给对应标签(submit)绑定事件,利用jQery发请求,下面是一个固定格式
$.ajax({
url:'',
type:'POST/GET', #GET或者POST
data:{'k1':123,'k2':'root'}
traditional:true, #加入value有列表的时候,必须加上这个参数,才能把数据发送到后端
dataType:'JSON', #设置了这个参数,从后端传过来的数据就是一个对象,我们也就不用再执行json.parse(data)
success:function(data){ #匿名函数,只有等服务器端返回数据回加载到data里面,才会执行这里面的函数
//json.parse(data) #将后端传来的数据转化成对象
}
})
补充:
$.get(url='',data='',success=)
$.post
这两种方法都是调用$.ajax的方法,只不过是将type里面传了参数get或者post
二、利用ajax发送请求,返回的时候,最好用HttpResponse
在给用户返回的时候,默认返回字典
import json
def test_ajax(request):
ret = {'status':True,'error':None,'data':None}
try:
pass
except Exception as e:
ret['status'] = False
ret['error'] = '请求错误'
return HttpResponse(json.dumps(ret))
前端处理(在json中可以用点处理):
在js中将对象转换成字符串
obj = JSON.parse(data)
if(obj.status){
location.reload() #刷新页面
location.href = 'URL' #跳转到指定的URL
}else{
#在页面上加一个标签,里面是空白的,然后用js赋值
$('').text(obj.error)
}
三、jQuery获取form标签里面所有值
data:$('#edit_form').serialize() #将所有input标签里面的数据以字典形式