zoukankan      html  css  js  c++  java
  • 前后端分离跨域问题cors

    一、为什么会有跨域这个问题的产生?

      出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)

    二、为什么会产生跨域?

      当服务器请求url地址时协议、域名、端口有一个不同就会产生跨域问题比如我这个项目后台端口是8000,前端是8080端口,因端口的不一样就会产生跨域问题的产生

     

    怎么判断是否为跨域呢,这里就拿我发送验证码这个功能举例,当点击发送验证码后前台会想后台发送请求

     此时我们右键点击审核网页元素,找到报错的代码

     这里有两个错误信息,第二个明显和请求无关主要是第一个错误信息,我们将第一个错误翻译过来是

    这里可以知道cors阻止了我们像后台的请求,原因是缺少"Access-Control-Allow-Origin"这个报头,其实以后大家一但看见这串英文就能知道这是跨域问题了

    三、好,现在我们开始解决这个问题,当然解决跨域问题的方式有很多我的解决方法是cors,这个很简单只需要配置几步就行了

      3.1首先我们先注册corsheaders这个应用

      3.2然后再设置中间件,切记一定将cors的中间件放在第一个,因为django中的中间件是从上往下一次执行的

      3.3设置跨域的白名单(将需要跨域的地址放进去

      3.4最后一步在django设置中设置允许访问的域名

    这些配置完了以后基本上就没问题了,我们试一试

     

    好了完成没问题

  • 相关阅读:
    数据库-第七章 数据库设计-7.4 逻辑结构设计
    ArrayList 一个面试题
    java 锁
    IDEA 通过插件jetty-maven-plugin使用 jetty
    Mybatis主线流程源码解析
    Springboot 报找不到对应的Mapper接口或RPC接口等问题
    Springboot启动报Multiple Dockets with the same group name are not supported. The following duplicate groups were discovered.
    Exception和Error有什么区别?
    谈谈对Java平台的理解笔记
    Spring事务控制
  • 原文地址:https://www.cnblogs.com/Hdwmsyqdm/p/14522672.html
Copyright © 2011-2022 走看看