Django跨域

1. 安装django-cors-headers模块

pip3 install django-cors-headers

2. 注册AAP

在setting里面修改

INSTALLED_APPS = [
    ...
    'corsheaders'
]

3. 添加中间件

MIDDLEWARE = [
    ...
    'corsheaders.middleware.CorsMiddleware'
]

4. 跨域设置

#跨域
# 跨域允许的请求方式,可以使用默认值,默认的请求方式为:
# from corsheaders.defaults import default_methods
CORS_ALLOW_METHODS = (
    'GET',
    'POST',
    'PUT',
    'PATCH',
    'DELETE',
    'OPTIONS'
)

# 允许跨域的请求头,可以使用默认值,默认的请求头为:
# from corsheaders.defaults import default_headers
# CORS_ALLOW_HEADERS = default_headers

CORS_ALLOW_HEADERS = (
    'XMLHttpRequest',
    'X_FILENAME',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
    'Pragma',
)

# 跨域请求时,是否运行携带cookie,默认为False
CORS_ALLOW_CREDENTIALS = True
# 允许所有主机执行跨站点请求,默认为False
# 如果没设置该参数,则必须设置白名单,运行部分白名单的主机才能执行跨站点请求
CORS_ORIGIN_ALLOW_ALL = True
#允许访问的来源,但是需要把CORS_ORIGIN_ALLOW_ALL设为False
CORS_ALLOW_HEADERS = ('*')
#部署服务器时使用
ALLOWED_HOSTS = ['*']


#如果要单独设置某些端口访问
CORS_ORIGIN_ALLOW_ALL = False
CORS_ORIGIN_WHITELIST = [
    'http://localhost:8080',
    'http://localhost',

    'http://127.0.0.1:8080',
    'http://127.0.0.1',

    'http://127.0.0.1:8000',
    'http://127.0.0.1',

    'http://192.168.2.140:8080',
    'http://192.168.2.140',
]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容