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

          

  • 相关阅读:
    四则运算测试脚本运行情况
    AAA
    (2015秋) 软工作业成绩公布(12月26号更新)
    判断闰年的Java算法
    B
    A
    Where Amazing Happens
    安利一发资料站
    C
    B
  • 原文地址:https://www.cnblogs.com/ZT-GJ/p/13573840.html
Copyright © 2011-2022 走看看