ajax设置cookie django,解决Django中ajax请求登录功能,login()函数不能在浏览器中设置sessionid的办法...

1.下面是login.js中ajax请求登录代码:html

function login(){

var username=$('#username').val()

var password=$('#password').val()

console.log(username)

console.log(password)

var data={

'username':username,

'password':password,

}

$.cookie('username',username)

var json_data=JSON.stringify(data)

send_url='http://127.0.0.1:8000/user/login/'

$.ajax({

url:send_url,

method:'POST',

data:json_data,

contentType:'application/json',

// xhrFields: {

// withCredentials: true

// },

headers: {"X-CSRFToken": $.cookie('csrftoken')},

dataType:'json',

success:function (e) {

alert(e.status)

location.href='/userinfo.html'

},

})

}

2.view.py中视图函数以下:前端

class UserLogin(GenericAPIView):

serializer_class = UserLoginSerializer

def post(self,request):

print(request.data)

serializer=self.get_serializer(data=request.data)

serializer.is_valid(raise_exception=True)

"""开始验证user,password"""

username=request.data['username']

password=request.data['password']

user = authenticate(username=username, password=password)

login(request,user)

"""因为这里没勾选条件,因此不加if record"""

trans_name=json.dumps(username)

print('转变后用户名类型',type(trans_name),trans_name)

# response.set_cookie('username',trans_name.decode())

return JsonResponse({'status':'登录成功'})

注:上面的login()函数完成后竟然没在浏览器中设置sessionid,以后在网上找到解决办法,在ajax请求中加入xhrFields: {withCredentials: true },便可,目的实现前端跨域设置web

function login(){

var username=$('#username').val()

var password=$('#password').val()

console.log(username)

console.log(password)

var data={

'username':username,

'password':password,

}

$.cookie('username',username)

var json_data=JSON.stringify(data)

send_url='http://127.0.0.1:8000/user/login/'

$.ajax({

url:send_url,

method:'POST',

data:json_data,

contentType:'application/json',

xhrFields: {

withCredentials: true

},

headers: {"X-CSRFToken": $.cookie('csrftoken')},

dataType:'json',

success:function (e) {

alert(e.status)

location.href='/userinfo.html'

},

})

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值