django允许跨域与自定义请求头
一、新建文件 my_md.py
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019111314331051.png)
二、插入代码
# my_md.py
class MiddlewareMixin(object):
def __init__(self, get_response=None):
self.get_response = get_response
super(MiddlewareMixin, self).__init__()
def __call__(self, request):
response = None
if hasattr(self, 'process_request'):
response = self.process_request(request)
if not response:
response = self.get_response(request)
if hasattr(self, 'process_response'):
response = self.process_response(request, response)
return response
class CORSMiddleware(MiddlewareMixin):
def process_response(self,request,response):
# 添加响应头
# 允许你的域名来获取我的数据
response['Access-Control-Allow-Origin'] = "*"
# 允许你携带Content-Type请求头
# 允许自定义前端可以添加请求头 token 字段
response['Access-Control-Allow-Headers'] = "Content-Type,token"
# 允许你发送DELETE,PUT
response['Access-Control-Allow-Methods'] = "DELETE,PUT"
return response
三、前端增加请求头字段 token
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191113144423107.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5OTA1NDM4,size_16,color_FFFFFF,t_70)
实际效果如图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191113144728496.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5OTA1NDM4,size_16,color_FFFFFF,t_70)
四、后端获取token
request_token = request.META.get('HTTP_TOKEN')