什么是跨域
- 跨域问题来源于 JavaScript的 “同源策略”, 即只有 协议+主机名+端口号相同, 则允许相互访问.
解决跨域问题
- 响应头添加Header允许访问
response = make_response()
response.headers['Accress-Control-Allow-Origin'] = '*'
response.headers['Accress-Control-Allow-Methods'] = 'GET,POST'
response.headers['Accress-Control-Allow-Headers'] = 'x-request-with, Content-type'
- 使用第三方扩展 flask-cors
使用flask-cors
cors = CORS()
cors.init_app(app=app, supports_credentials=True)
实现登录功能
from flask import Blueprint
from flask_restful import Api, Resource, reqparse, inputs
from apps.utils.util import send_message
user_bp = Blueprint('user', __name__)
api = Api(user_bp)
sms_parser = reqparse.RequestParser()
sms_parser.add_argument('mobile', inputs.regex(r'^1[3578]\d{9}$'),
help='', required=True, location='form')
class SendMessageApi(Resource):
def post(self):
args = sms_parser.parse_args()
mobile = args.get('mobile')
duanxin = send_message()
if duanxin:
return '短信发送成功'
else:
return '短信发送失败'
api.add_resource(SendMessageApi, '/sms')