CORS跨域djangosetting.py 配置

Posted zxs117

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CORS跨域djangosetting.py 配置相关的知识,希望对你有一定的参考价值。

1 什么是 CORS?

Cross-Origin Resource Sharing(CORS)跨域资源共享是一份浏览器技术的规范,提供了 Web 服务从不同域传来沙盒脚本的方法,以避开浏览器的同源策略,是 JSONP 模式的现代版。与 JSONP 不同,CORS 除了 GET 要求方法以外也支持其他的 HTTP 要求。用 CORS 可以让网页设计师用一般的 XMLHttpRequest,这种方式的错误处理比 JSONP 要来的好。另一方面,JSONP 可以在不支持 CORS 的老旧浏览器上运作。现代的浏览器都支持 CORS。

2 什么是跨域

如果在A网站中,我们希望使用Ajax来获得B网站中的特定内容
如果A网站与B网站不在同一个域中,那么就出现了跨域访问问题.

由于浏览器同源策略,凡是发送请求url的协议、域名、端口三者之间任意一与当前页面地址不同即为跨域。具体可以查看下表(来源)

技术图片

settings.py配置

  • 要先下载的包 pip install django-cors-headers
INSTALLED_APPS = [

    ‘corsheaders‘,  #	添加一个
] 

MIDDLEWARE = [
    ‘corsheaders.middleware.CorsMiddleware‘,  #添加这行
    ‘django.middleware.common.CommonMiddleware‘,
]


CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = 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‘,
)

以上是关于CORS跨域djangosetting.py 配置的主要内容,如果未能解决你的问题,请参考以下文章

Cors跨域请求

System.Web.Http.Cors配置跨域访问的两种方式

36SpringBoot配置Cors解决跨域请求

cors,跨域资源共享,Java配置

Spring Security (CORS)跨域资源访问配置

WebApi使用cors配置跨域问题