一、getQueryVariable()方法
1、js方法如下,参考菜鸟教程
function getQueryVariable(variable)
{
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}
2、url 实例:
url:http://www.runoob.com/index.php?id=1&image=awesome.jpg
- 调用 getQueryVariable(“id”) 返回 1。
- 调用 getQueryVariable(“image”) 返回 “awesome.jpg”。
二、我使用的应用场景,ajax登陆验证成功后跳转next
1、在django中如果用户未登陆,可以将其跳转到登陆页面并带next参数。
在需要验证的视图函数前面加上login_required装饰器
@login_required(login_url='/login/')
例如未登陆状态访问/index页面的话会跳转到http://127.0.0.1:8000/login/?next=/index/登陆页面并带nexi=/index/参数
2、使用ajax登陆验证,成功后需要跳转到next参数所指向的页面,这里便使用这个方法获取next参数,如果存在next则跳转,不存在则跳转首页。
$.ajax({
type: "POST",
url: login_ajax_check,
data: JSON.stringify({
"username": username,
"mailsuffix": mailsuffix,
"password": password,
}),
success: function (data) {
//console.log(data)
//如果返回的结果为1,即验证成功的话
if (data["res"] == 1) {
//console.log(data["res"])
{#console.log(getQueryVariable("next"))#}
//获取next参数
nexturl=getQueryVariable("next")
if (nexturl==false)
{location.href = '/index'} //如果next参数不存在,则直接跳转首页
else {
location.href=nexturl //如果next参数存在,则跳转到next所指向的页面
}
}
//如果返回的结果为0,即验证不成功的话,则显示错误提示
else if (data["res"] == 0) {
$("#login_failed_tip").show()
}
else {
alert("内部服务错误,请联系负责人")
}
$("#login_btn").button('reset')
},
complete: function () {
$("#login_btn").button('reset')
//请求完成的处理
},
error: function () {
$("#login_btn").button('reset')
alert("请求失败")
},
});