前端对Cross-Origin Resource Sharing 问题(CORS,中文又称‘跨域‘)应该很熟悉了。众所周知出于安全的考虑,浏览器有个同源策略,对于不同源的站点之间的相互请求会做限制(跨域限制是浏览器行为,不是服务器行为。)。
跨域一句话的理解就是:服务端和请求端的地址不一样。
同源指的是域名(或IP),协议,端口都相同。 不同源的客户端脚本(javascript、ActionScript)在没明确授权的情况下,不能读写对方的资源。
pip install django-cors-headers
INSTALLED_APPS =( ... ‘ corsheaders ‘, ... )
MIDDLEWARE = [ ... # 跨域请求中间件 ‘corsheaders.middleware.CorsMiddleware‘, // 放在此位置 ,默认中间件中第三的位置 ‘ django.middleware.common.CommonMiddleware‘, ... ]
# 跨域允许的请求方式,可以使用默认值 ? # 1.默认的请求方式为: # from corsheaders.defaults import default_methods # CORS_ALLOW_METHODS = default_methods //应该是默认全部请求方式 ? # 2.自定义 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
原文:https://www.cnblogs.com/Deaseyy/p/10903306.html