一百二十一:CMS系统之注册后跳转到上一个页面

 

实现功能,访问测试页面的时候,跳转到注册页面,注册成功后跳转到测试页面

使用参数:若是从其他地址跳转过来时,头部信息中会携带参数referrer,此参数为从从哪个地址跳转到当前地址的,若是直接从浏览器输入的地址,则不会携带此参数

准备一个测试页面和接口

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a href="{{ url_for('front.signup') }}">点击注册</a>
</body>
</html>

校验url是否合法的逻辑

from urllib.parse import urlparse, urljoin
from flask import request


def is_safe_url(target):
""" 判断url是否合法,是否在同一域名 """
ref_url = urlparse(request.host_url)
test_url = urlparse(urljoin(request.host_url, target))
return test_url.scheme in ('http', 'https') and ref_url.netloc == test_url.netloc

get请求里面判断,和是否加入referrer参数

def get(self):
referrer = request.referrer # 来到此接口的上一个接口
if referrer and referrer != request.url and safeutils.is_safe_url(referrer):
return render_template('front/front_signup.html', referrer=referrer)
else:
return render_template('front/front_signup.html')

模板中加入此参数,并隐藏

js在成功的回调函数中判断

跳转注册:

posted @ 2019-11-30 14:48  向前走。  阅读(336)  评论(0编辑  收藏  举报