浏览器同源问题解决(django)

cors是解决前端发送axios遇到浏览器同源策略的方式之一。

同源策略是一种约定,是浏览器最核心也最基本的安全功能,主要体现在同源策略会限制来自不同源的文档和脚本对当前源的文档数据的读取或设置某些属性,是用于隔离潜在恶意文件的重要安全机制。

如何判断跨域呢,只要域名,端口号,协议有一个不一样就会被判定跨域,请求不成功。

在出现CORS标准之前, 我们还只能通过jsonp的形式去向“跨源”服务器去发送 XMLHttpRequest 请求,这种方式吃力不讨好,在请求方与接收方都需要做处理,而且请求的方式仅仅局限于GET。所以 ,CORS标准必然是大势所趋,并且市场上绝大多数浏览器都已经支持CORS。(IE10以上)

django简介

Django是一个开放的web框架,由python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。2019年12月2日,Django 3. 0发布,听说知乎就是用python编写的,语言虽然速度有快有慢,python比c慢上一百倍作用,不过语言更加重要的是应用场景,php适合web开发,c适合写嵌入式,java适合后端开发,大数据等,go语言在云原生已经杀疯了,python在机器学习领域有者很好的发展。总之语言基本都各有千秋,没有严格意义上的差与好的区分。

django解决同源策略的方式

 首先先下载第三方库

python -m pip install django-cors-headers

然后再.setting 文件里面添加如下设置

apps设置

INSTALLED_APPS = [
    ...,
    "corsheaders",
    ...,
]

 middleware设置

MIDDLEWARE = [
    ...,
    "corsheaders.middleware.CorsMiddleware",
    "django.middleware.common.CommonMiddleware",
    ...,
]

 添加白名单

MIDDLEWARE = [
    ...,
    "corsheaders.middleware.CorsMiddleware",
    "django.middleware.common.CommonMiddleware",
    ...,
]

添加请求方式

CORS_ALLOW_METHODS = [
    "DELETE",
    "GET",
    "OPTIONS",
    "PATCH",
    "POST",
    "PUT",
]

添加请求头

CORS_ALLOW_HEADERS = [
    "accept",
    "accept-encoding",
    "authorization",
    "content-type",
    "dnt",
    "origin",
    "user-agent",
    "x-csrftoken",
    "x-requested-with",
]

 至此相关设置大至完成,更多资料请移步第三方库官网

django-cors-headers · PyPI

 本人水平有限,如有错误还请见谅。

你可能感兴趣的:(django,python,后端)