解决django的api地址不能让web页面访问,页面返回Access-Control-Allow-Headers类似的跨域问题
首先创建一个middleware
from django.middleware.common import CommonMiddlewareclass MiddlewareMixin:
def __init__(self, get_response=None):
self.get_response = get_response
super().__init__()
def __call__(self, request):
response = None
if hasattr(self, 'process_request'):
response = self.process_request(request)
response = response or 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请求头
# response["Access-Control-Allow-Headers"] = "Content-Type"
# 允许请求的方法
# response["Access-Control-Allow-Methods"] = "DELETE,PUT,POST"
return response再在配置文件中添加刚刚编写的中间件模块
settings.py添加中间件
MIDDLEWARE = [
.......
"app_name.cors.CORSMiddleware",
]

至此,解决前端页面无法访问接口的跨域问题