解决django的api地址不能让web页面访问

154 阅读1分钟
解决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", ]



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