Django-跨域

这篇具有很好参考价值的文章主要介绍了Django-跨域。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、基础概念

cors 跨域资源共享

二、跨域请求-简单请求

满足以下全部条件的请求为 简单请求

1.请求方法如下:

        GET or HEAR or POS

2.请求头仅包含如下:

        Accept、Accept-Language、Content-Language、Content-Type

3.ConTent-Type 仅支持如下三种:

        applicatiion/x-www-form-urlencoded

        multipart/form-data

        text/plain

三、简单请求跨域流程

1.请求

请求头中 携带Origin,该字段表明自己来自哪个域

2.响应

如果请求头中的Origin在服务器接受范围内,则返回如下头

Django-跨域,django,python如果服务器不接受此域,响应头中不包含Access-Control-Allow-Origin

四、预检请求跨域流程

第一步 先发送OPTIONS请求,看响应带不带Access-Control-Allow-Origin

第二步 发真实请求,返回响应

1.OPTIONS请求发起,携带如下请求头

Django-跨域,django,python

2.OPTIONS接受响应阶段,携带如下响应头

Django-跨域,django,python

3.主请求阶段

Django-跨域,django,python

4.主请求响应阶段

Django-跨域,django,python

项目中基本都是预见请求  Content-Type 都是json请求  不符合简单请求得第三点

Django配置CORS

pip3 install django-cors-headers

配置流程

1.INSTALLED_APPS中添加corsheaders

2.MIDDLEWARE 中添加corsheaders.middleware.CorsMiddleware 位置尽量靠前,官方建议

‘django.middleware.common.CommonMiddleware’ 上方

3.CORS_ORIGIN_ALLOW_ALL 布尔值 如果为True白名单不启用

白名单-允许的域

4.CORES_ORIGIN_WHITELIST = ["https://xxxx.com"]

允许的请求方式

5.CORS_ALLOW_METHODS = (

                'DELETE',
                'GET',
                'OPTIONS',
                'PATCH',
                'POST',
                'PUT'

)

允许的头

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

请求缓存时间

7.CORES_PREFLIGHT_MAX_AGE 默认 86400s

特殊的响应头

8.CORS_EXPOSE_HEADERS []

是否要跨域的cookie

9.CORES_ALLOW_CREDENTIALS 布尔值 默认False

后三个不配文章来源地址https://www.toymoban.com/news/detail-690456.html

到了这里,关于Django-跨域的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Django 解决CORS跨域问题的方法

    Cross-Origin Resource Sharing(CORS) 跨域问题,在前后端后离项目, selenium , playweight 自动化测试代码中经常遇到。 而使用 python request, curl, postman 等非浏览器代码发送请求时则不存在这个问题。 浏览器采用了同源保护策略,为了防御恶意攻击,会检查Request消息与Response消息的域

    2024年03月23日
    浏览(34)
  • Django-cors-headers解决跨域请求

    浏览器具有同源策略的限制,导致发送ajax请求+跨域存在无法获取数据。Django-cors-headers就是用于解决Django跨域请求问题的。   一 、安装和配置cors-headers 安装django-cors-headers 2.在setting.py添加配置文件 二、添加跨域白名单设置 (一)必选设置 在 Django 设置中配置中间件的行为。

    2024年02月12日
    浏览(39)
  • Django-drf项目初始化:跨域、认证权限过滤、static静态资源路由,mysql数据库连接,登录注册功能

    码云地址:https://gitee.com/liuhaizhang/drf-project-initialization 项目目录结构: study_drf            -home         -static         -study_drf         -util         -manage.py pip install django #drf基于django pip install djangorestframework #drf框架 pip install mysqlclient #连接数据库 pip install djangorestframewo

    2024年02月03日
    浏览(67)
  • 【python】Django——django简介、django安装、创建项目、快速上手

    笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ 【Django专栏】 Django——django简介、django安装、创建项目、快速上手 Django——templates模板、静态文件、django模板语法、请求和响应 Django——连接mysql数据库 Django 是一个高效、功能强大的 Web 应用程序框架,采用 Python 编写

    2024年02月20日
    浏览(54)
  • python的安装,Django的安装,Pycharm新建Django项目

    官网:https://www.python.org 官网–downloads–windows–选择对应的版本下载.exe文件 双击运行下载的安装包,按步骤进行安装 ①选择安装方式 install now,会直接默认安装到C盘中; customize installation,自定义安装,可以自行选择安装的位置 PS:无论选择哪种方式,都要记得勾选最底下

    2024年02月21日
    浏览(47)
  • Django笔记四十之运行Django环境的python脚本

    本文首发于公众号:Hunter后端 原文链接:Django笔记四十之运行Django环境的python脚本 这一篇笔记介绍如何在 Django 中运行脚本。 假设说我们要实现一个功能,需要获取 blog.models.Blog 这张表里的总数且使用 print() 输出。 如果代码逻辑很短,且是一次性执行的操作,我们可以在系

    2024年02月04日
    浏览(46)
  • windows解决python安装django架构没有django-admin命令

    目录 一.尝试安装与配置 1.直接pip命令安装 2.用pycharm测试 3.官网下包安装 二.解决 1.找到django安装的路径 2.配置系统变量 3.测试创建项目 3.1.执行访问页面 3.2.解决 3.3.继续测试 4.pycharm打开     新建项目测试    注:发现没有django这个框架选项,后面发现这个功能只有专业版才

    2024年02月06日
    浏览(55)
  • 一周学会Django5 Python Web开发-Django5路由定义

    锋哥原创的Python Web开发 Django5视频教程: 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计22条视频,包括:2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~、第2讲 Django5安装、

    2024年02月19日
    浏览(53)
  • python - Django创建项目

    根目录下运行命令:    python manage.py runserver 直接使用 Pycharm 创建项目 django-admin startproject mysite     这样就会在当前目录下创建一个叫做 mysite 的Django项目。     可以看到Django自动帮我们创建了一个mysite文件夹,这是项目的根目录。在mysite根目录中,又有一个mysite目录,

    2024年04月11日
    浏览(41)
  • Python django开发

    第一步:创建开发环境 mkvirtualenv py2_django 第二步:安装django pip install django==2.2.5   # 选择2.2.5的原因是这个版本是持久维护的 pip list # 查看安装的信息 第三步:start 一个项目,并创建子应用 cd ~/Myproject   # 选择目录 django-admin startproject myweb  # 创建项目 第四步,启动服务端

    2024年02月16日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包