django解决ajax跨域请求问题

本地服务解决

pip install django-cors-headers
 

在settings文件中设置

 INSTALLED_APPS = [  
     ...  
     'corsheaders', # 注册app
     ...  ]    
 MIDDLEWARE_CLASSES = ( 
     ...  
     #尽可能靠前,必须在CsrfViewMiddleware、CommonMiddleware之前。
     #我们直接放在第一个位置就好了
     'django.middleware.csrf.CsrfViewMiddleware',
     'corsheaders.middleware.CorsMiddleware',  
     'django.middleware.common.CommonMiddleware', 
     ... 
 ) 
添加参数为true
CORS_ORIGIN_ALLOW_ALL = True
#下面这些可以不用设置
#跨域增加忽略 
CORS_ALLOW_CREDENTIALS = True
#设置白名单
CORS_ORIGIN_WHITELIST = (  '*')   
CORS_ALLOW_METHODS = (  'DELETE',  'GET',  'OPTIONS',  'PATCH',  'POST',  'PUT',  'VIEW', )   
CORS_ALLOW_HEADERS = (  
'XMLHttpRequest',  
'X_FILENAME',  
'accept-encoding', 
'authorization',  
'content-type',  
'dnt',
'origin',  
'user-agent',  
'x-csrftoken',  
'x-requested-with',  
'Pragma', 
) 

nginx解决

server {
        listen       8000;
        server_name  localhost;
        location / {
            # 在nginx的location中添加以下内容
            add_header 'Access-Control-Allow-Origin' '*'; #允许来自所有的访问地址
            add_header 'Access-Control-Allow-Credentials' 'true';
            add_header 'Access-Control-Allow-Methods' 'GET, PUT, POST, DELETE, OPTIONS'; #支持请求方式
            add_header 'Access-Control-Allow-Headers' 'Content-Type,*';
        }

    }

 

你可能感兴趣的:(python,django,服务器,python,django,跨域,ajax)