CORS跨域请求

CORS跨域请求

CORS即Cross Origin Resource Sharing 跨域资源共享,

那么跨域请求还分为两种,一种叫简单请求,一种是复杂请求~~

简单请求

HTTP方法是下列方法之一

  HEAD, GET,POST

HTTP头信息不超出以下几种字段

  Accept, Accept-Language, Content-Language, Last-Event-ID

  Content-Type只能是下列类型中的一个

    application/x-www-from-urlencoded

    multipart/form-data

    text/plain

任何一个不满足上述要求的请求,即会被认为是复杂请求~~

复杂请求会先发出一个预请求,我们也叫预检,OPTIONS请求~~

浏览器的同源策略

跨域是因为浏览器的同源策略导致的,也就是说浏览器会阻止非同源的请求~

那什么是非同源呢~~即域名不同,端口不同都属于非同源的~~~

浏览器只阻止表单以及ajax请求,并不会阻止src请求,所以我们的cnd,图片等src请求都可以发~~

解决跨域

JSONP

jsonp的实现原理是根据浏览器不阻止src请求入手~来实现的~~

JsonP实现的后端代码

class Test(APIView):def get(self, request):callback = request.query_params.get("callback", "")ret = callback + "(" + "'success'" + ")"return HttpResponse(ret)

 

JsonP测试前端代码

<button id="btn_one">点击我向JsonP1发送请求</button>
<script>// 测试发送请求失败 跨域不能得到数据$('#btn_one').click(function () {$.ajax({url: "http://127.0.0.1:8000/jsonp1",type: "get",success: function (response) {console.log(response)}})});function handlerResponse(response) {alert(response)};window.onload = function () {$("#btn_one").click(function () {let script_ele = document.createElement("script");script_ele.src = "http://127.0.0.1:8000/jsonp1?callback=handlerResponse";document.body.insertBefore(script_ele, document.body.firstChild);})}</script>

JsonP解决跨域只能发送get请求,并且实现起来需要前后端交互比较多。

添加响应头

中间件加响应头

from django.utils.deprecation import MiddlewareMixinclass MyCore(MiddlewareMixin):def process_response(self, request, response):response["Access-Control-Allow-Origin"] = "*"if request.method == "OPTIONS":response["Access-Control-Allow-Headers"] = "Content-Type"response["Access-Control-Allow-Methods"] = "DELETE, PUT, POST"return response

 

转载于:https://www.cnblogs.com/cainingning/p/9983457.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/463650.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

原博客文章(Apache初配2008/4/8)

2008/4/8Apache初配 最近在做个小网站,做好了大部分的页面,要发布,开始的时候选择了IIS发布,后来由于一些问题,还有我们网络工程师的推荐,决定用Apache,于是研究了以下,把自己的初配和感受记录下来,也是为了和我一样的初配Apache的朋友一点帮助!Apache对Asp.net的程序是不支持的…

__attribute__((always_inline))

__attribute__((always_inline))的意思是强制内联&#xff0c;所有加了__attribute__((always_inline))的函数再被调用时不会被编译成函数调用而是直接扩展到调用函数体内&#xff0c;例子如下&#xff1a; define inline __attribute((always_inline))的意思就是用 inline 代…

抽奖|我的学习书单—嵌入式Linux shell

大家好&#xff0c;双十一就来了&#xff0c;推荐一组书单给大家。&#x1f9a2;&#xff0c;这些年&#xff0c;非常感谢大家这些年对这小公众号的支持&#xff0c;最近厚着脸皮跟出版社拿到10本书籍赠送给公众号的小伙伴&#xff0c;规则写在文末&#xff0c;感兴趣的小伙伴可…

应用程序池优化配置方案(IIS7、IIS7.5)

定义&#xff1a; 是将一个或多个应用程序链接到一个或多个工作进程集合的配置&#xff0c;该池中的应用程序与其他应用程序被工作进程边界分隔&#xff0c; 一、一般优化方案 1.基本设置 【1】队列长度&#xff1a;默认1000&#xff0c;将原来的队列长度65535 【2】启动32位应…

Linux Cpu 利用率计算

转载&#xff1a;http://blog.chinaunix.net/uid-20057401-id-1979033.html 前几天要写一个取得linux performance的函数。查询了一些资料。发现有几种计算cpu利用率的方法。但是都不怎么正确。最后查了以下top的源代码。现列出其计算cpu利用率的关键函数 c代码如下&#x…

Delphi 记录类型- 结构指针

转自&#xff1a;万一老师的 Delphi 博客 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 class(TForm) Button1: TButton; Button2: TButton; …

深圳的房价跌了

我很久没有关注深圳的房价了&#xff0c;上一篇关于深圳房价的文章好像还是几个月之前的&#xff0c;几个月之前&#xff0c;我一个同学买房&#xff0c;跟我咨询了下&#xff0c;然后就写了一篇文章。现在不要着急买房这篇文章从那个时候到现在已经一年了&#xff0c;前几天跟…

Springboot 使用Mybatis对postgreSQL实现CRUD

目录结构 1、创建一个springboot项目 选择Web、Mabatis、postgreSQL 2、在application中写入配置文件 1 #配置数据源 2 spring.datasource.platformpostgres 3 spring.datasource.urljdbc:postgresql://127.0.0.1:5432/postgres 4 spring.datasource.usernamepostgres 5 spring…

boost学习之boost::lock_guard源码分析

boost::lock_guard可以说是一种比boost::unique_lock轻量级的lock, 简单一些场景可以用它就行了。源码如下&#xff1a; template<typename Mutex> class lock_guard { private: Mutex& m; explicit lock_guard(lock_guard&); lock_guard& operator(lock…

搜索连接字符串存储过程【原创】

1、CREATE PROCEDURE dbo.SearchUserInfo (Age int ) AS SELECT * FROM UserInfo WHERE Age like %cast(Age as nvarchar(50))% RETURN 2、 CREATE PROCEDURE dbo.Mfx_SearchUserInfo --用户搜索[state-审核状态(2为全部)、UserLever-用户级别(0为全部)、keyWord(关键字)] …

mysql my.cnf 配置建议

/usr/local/share/mysql下面有5个my-xxxx.cnf文件 my-small.cnf 最小配置安装&#xff0c;内存⇐64M&#xff0c;数据数量最少 my-large.cnf 内存512M my-medium.cnf 32M<内存<64M&#xff0c;或者内存有128M&#xff0c;但是数据库与web服务器公用内存 my-huge.cnf …

不得不说,这是我面过的最优秀的Linux运维!

Linux可以说是运维之“本”。无论中小企业还是大厂&#xff0c;现在的企业有95%甚至更多是使用Linux服务器。而对于Linux运维来说&#xff0c;Linux基础越扎实、会的工具越多&#xff0c;能解决的问题就越多&#xff0c;技术也能走的更远。Linux&#xff0c;甚至可以说是进入IT…

boost学习之boost::lock_guardT与boost::unique_lockT的区别

(1)、boost::lock_guard没有unlock()功能 boost::mutex mutex; void foo( ) { boost::lock_guard<boost::mutex> lock(mutex); process(data); ///没有unlock()功能&#xff0c;程序结束自动析构 }; (2)、unique_lock允许设置超时&#xff0c;推迟锁定lock以及在对象…

用友财务软件主要数据表字段含义

用友财务软件主要数据表字段含义 /*rdrecords : 收发记录子表AutoID : auto ID 自动编号 automatism identification(identity)ID : ID 与收发记录主表关联项cInvCode : c…

重叠IO之完成例程

http://hi.baidu.com/%CC%EC%D1%C4_jmf/blog/item/7718ccd99b03cb2710df9bc2.html转载于:https://www.cnblogs.com/vcdebug2010/archive/2012/06/23/2559096.html

一个中科大「差生」的8年程序员工作总结

今年终于从大菊花厂离职了&#xff0c;离职前收入大概60w不到吧&#xff01;在某乎属于比较差的&#xff0c;今天终于有空写一下自己的职场故事&#xff0c;也算是给自己近8年的工作做个总结复盘。近8年有些事情做对了&#xff0c;也有更多事情做错了&#xff0c;在这里记录一下…

Java IO File

#file file的一些方法&#xff0c;因为windows和Linux开发环境的问题&#xff0c;在file中最好统一用 / 输出流操作 转载于:https://www.cnblogs.com/cykfory/p/10294981.html

gtest使用例子

最近使用gtest进行单元测试&#xff0c;采用打桩的形式。关于gtest的详细说明就不多说了&#xff0c;网上的资料一大堆。主要讲解使用时的参数如何配置以及遇到的问题。下面的例子模拟是加、减、乘、除四则运算&#xff0c;前提是不知道加、减、乘、除四则运算是如何实现的。 …

游戏开发中的数学和物理算法(7):角度 vs 弧度

我们通常使用的笛卡尔坐标系统&#xff0c;角点通常在(0,0),即原点。初始边在x轴正半轴&#xff0c;终边与初始边成夹角。初始边逆时针旋转为正值&#xff0c;顺时针旋转为逆值。数学表示&#xff1a;角度&#xff1a;degreeradian*180/π 弧度&#xff1a;radiandegree*π/18…

医学影像PACS系统解决方案与成功案例汇总

经历过2010年一年时间&#xff0c;HC3i论坛也与大家相伴快一年了&#xff0c;这一年中&#xff0c;网友分享专业医疗信息化资料超过15000个&#xff0c;HC3i感谢大家的支持与厚爱&#xff01;岁末年初之极&#xff0c;也整理盘点一下&#xff0c;方便大家回顾一年中精华资源&am…