zoukankan      html  css  js  c++  java
  • 跨域问题

    1、 跨域问题:

      跨域发生的原因(什么是跨域)?

      首先 跨域发生在前后端分离的项目中 ,前端静态资源服务器(服务器A) ,后端服务器(服务器B)

      在浏览器中 我们 在地址栏 输入服务器A 的域名 ,服务器A会返回 html ,css,js。代码  我们通过js访问  服务器B的资源 就会发生----跨域

      简述:服务器A的js通过 ajax访问服务器B下的资源 

      跨域的结果是什么?

      通过 js发送get请求 服务器B会接收请求 但不会返回结果 

      通过js发送post,put,patch,delete请求 服务器B     js内部会先发送一个options请求的试探 如果返回200OK 则会继续请求,否则则停止请求

      options请求简述: 跨域的一次预检,判断后端是否允许返回资源(服务器是默认拒绝的)

    2、解决(django)

      options请求 需要服务器B的接口返回200OK 我们不太可能每一个接口都写一个 (冗余),so 封装 

      在django中 我们使用Cors来解决

      包名:django-cors-headers    github:https://github.com/adamchainz/django-cors-headers

      安装  : pip install django-cors-headers

      在settings 中 INSTALL_APPS=[ 'corsheaders']        ]

      在中间件中 设置  :corsheaders.middleware.CorsMiddleware  写在第一项

      添加白名单: (只有白名单中的地址 才可以访问服务器B的资源)

      CORS_ORIGIN_WHITELIST = (
          '127.0.0.1:8080',
          'localhost:8080',
      )  
      CORS_ALLOW_CREDENTIALS = True  # 允许携带cookie

          

  • 相关阅读:
    python 安装第三方插件库报错的解决方案
    vue.js helloword
    node.js HelloWord
    十一 —— 迭代器、生成器、装饰器
    十、函数——匿名函数、推导式
    九、函数 —— 参数
    八、数据类型——bytes类型+set类型
    七、数据类型 —— 字典
    六、数据类型 —— 字符串
    五、数据类型 —— 元组
  • 原文地址:https://www.cnblogs.com/ZT-GJ/p/13573840.html
Copyright © 2011-2022 走看看