callback

详解js跨域

≡放荡痞女 提交于 2020-03-08 20:09:25
(P.s. 本文系转载, 点我 阅读原文。) 什么是跨域? 概念:只要协议、域名、端口有任何一个不同,都被当作是不同的域。 对于端口和协议的不同,只能通过后台来解决。URL 说明 是否允许通信 http://www.a.com/a.js http://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.js http://www.a.com/script/b.js 同一域名下不同文件夹 允许 http://www.a.com:8000/a.js http://www.a.com/b.js 同一域名,不同端口 不允许 http://www.a.com/a.js https://www.a.com/b.js 同一域名,不同协议 不允许 http://www.a.com/a.js http://70.32.92.74/b.js 域名和域名对应ip 不允许 http://www.a.com/a.js http://script.a.com/b.js 主域相同,子域不同 不允许 http://www.a.com/a.js http://a.com/b.js 同一域名,不同二级域名(同上) 不允许(cookie这种情况下也不允许访问) http://www.cnblogs.com/a.js http://www.a.com/b.js 不同域名 不允许

详解js跨域问题

◇◆丶佛笑我妖孽 提交于 2020-03-08 20:06:20
注:本文转载自---- https://segmentfault.com/a/1190000000718840 概念:只要协议、域名、端口有任何一个不同,都被当作是不同的域。 跨域资源共享(CORS) CORS(Cross-Origin Resource Sharing )跨域资源共享,定义了必须在访问跨域资源时,浏览器与服务器应该如何沟通。 CORS 背后的基本思想就是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是应该成功还是失败。 <script type="text/javascript"> var xhr = new XMLHttpRequest(); xhr.open("GET", "/trigkit4",true); xhr.send(); </script> 以上的 trigkit4 是相对路径,如果我们要使用 CORS ,相关 Ajax 代码可能如下所示: <script type="text/javascript"> var xhr = new XMLHttpRequest(); xhr.open("GET", "http://segmentfault.com/u/trigkit4/",true); xhr.send(); </script> 代码与之前的区别就在于相对路径换成了其他域的绝对路径,也就是你要跨域访问的接口地址。

详解js跨域问题

三世轮回 提交于 2020-03-08 20:05:18
什么是跨域? 概念:只要协议、域名、端口有任何一个不同,都被当作是不同的域。 URL 说明 是否允许通信 http://www.a.com/a.js http://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.js http://www.a.com/script/b.js 同一域名下不同文件夹 允许 http://www.a.com:8000/a.js http://www.a.com/b.js 同一域名,不同端口 不允许 http://www.a.com/a.js https://www.a.com/b.js 同一域名,不同协议 不允许 http://www.a.com/a.js http://70.32.92.74/b.js 域名和域名对应ip 不允许 http://www.a.com/a.js http://script.a.com/b.js 主域相同,子域不同 不允许 http://www.a.com/a.js http://a.com/b.js 同一域名,不同二级域名(同上) 不允许(cookie这种情况下也不允许访问) http://www.cnblogs.com/a.js http://www.a.com/b.js 不同域名 不允许 对于端口和协议的不同,只能通过后台来解决。 跨域资源共享(CORS) CORS

详解js跨域

两盒软妹~` 提交于 2020-03-08 20:04:19
什么是跨域? 概念:只要协议、域名、端口有任何一个不同,都被当作是不同的域。 对于端口和协议的不同,只能通过后台来解决。URL 说明 是否允许通信 http://www.a.com/a.js http://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.js http://www.a.com/script/b.js 同一域名下不同文件夹 允许 http://www.a.com:8000/a.js http://www.a.com/b.js 同一域名,不同端口 不允许 http://www.a.com/a.js https://www.a.com/b.js 同一域名,不同协议 不允许 http://www.a.com/a.js http://70.32.92.74/b.js 域名和域名对应ip 不允许 http://www.a.com/a.js http://script.a.com/b.js 主域相同,子域不同 不允许 http://www.a.com/a.js http://a.com/b.js 同一域名,不同二级域名(同上) 不允许(cookie这种情况下也不允许访问) http://www.cnblogs.com/a.js http://www.a.com/b.js 不同域名 不允许 跨域资源共享(CORS) CORS(Cross

node.js 封装模块

人盡茶涼 提交于 2020-03-08 18:31:45
1. form.js // 模块1 服务模块,负责启动服务 // 模块2 拓展模块,负责拓展req和res对象,为req和res增加以下更方便好用的API // 模块3 路由模块,负责路由判断 // 模块4 业务模块,负责处理具体路由的业务的代码 // 模块5 数据操作模块,负责进行数据库操作 // 模块6 配置模块,负责报错各种项目中用到的配置信息 var http = require('http'); var context = require('./11_context.js'); var router = require('./11_router.js'); var config = require('./11_config.js'); console.log('form'); http.createServer(function(req, res) { // 外部代码只在开始时执行依次,内部代码每请求一次就执行一次 console.log('server'); context(req, res); // 调用context.js的返回值,并将req和res传递过去 router(req, res); }).listen(config.port, function() { console.log('http://localhost:' + config.port); });

Django进阶之中间件

夙愿已清 提交于 2020-03-08 13:20:33
中间件简介 在http请求 到达视图函数之前 和视图函数return之后,django会根据自己的规则在合适的时机执行中间件中相应的方法。 中间件的执行流程 1、执行完所有的request方法 到达视图函数。 2、执行中间件的其他方法 2、经过所有response方法 返回客户端。 注意:如果在其中1个中间件里 request方法里 return了值,就会执行当前中间的response方法,返回给用户 然后 报错。不会再执行下一个中间件。 自定义中间件 1、在porject下创建自定义py文件 1 from django.utils.deprecation import MiddlewareMixin 2 class Middle1(MiddlewareMixin): 3 def process_request(self,request): 4 print("来了") 5 def process_response(self, request,response): 6 print('走了') View Code 2、在setings文件中注册这个py文件 django项目的settings模块中,有一个 MIDDLEWARE_CLASSES 变量,其中每一个元素就是一个中间件 1 MIDDLEWARE = [ 2 'django.middleware.security

浅析dubbo原理和实现 转

最后都变了- 提交于 2020-03-08 00:19:13
出处: 浅析dubbo原理和实现 一、Duboo基本概念解释 Dubbo是一种分布式服务框架。 Webservice也是一种服务框架,但是webservice并不是分布式的服务框架,他需要结合F5实现负载均衡。因此,dubbo除了可以提供服务之外,还可以实现软负载均衡。它还提供了两个功能Monitor 监控中心和调用中心。这两个是可选的,需要单独配置。 Dubbo的计数架构图如下: 我们解释以下这个架构图:   Consumer服务消费者,Provider服务提供者。Container服务容器。消费当然是invoke提供者了,invoke这条实线按照图上的说明当然同步的意思了,多说一句,在实际调用过程中,Provider的位置对于Consumer来说是透明的,上一次调用服务的位置(IP地址)和下一次调用服务的位置,是不确定的。这个地方就是实现了软负载。   Monitor这是一个监控,图中虚线表明Consumer 和Provider通过异步的方式发送消息至Monitor,Consumer和Provider会将信息存放在本地磁盘,平均1min会发送一次信息。Monitor在整个架构中是可选的(图中的虚线并不是可选的意思),Monitor功能需要单独配置,不配置或者配置以后,Monitor挂掉并不会影响服务的调用 二 分析源代码,基本原理如下:   1:client一个线程调用远程接口

跨域问题

不打扰是莪最后的温柔 提交于 2020-03-07 20:58:11
问题描述 使用Spring Boot开发的REST API是相当容易的,一般情况下,REST API是独立部署的,如果WebUI也进行独立部署,那么RESTAPI与WebUI可能在不同的域名下部署,从WebUI发送的AJAX请求去调用RESTAPI时就会遇到“跨域问题”。在浏览器控制台上会报错: “No ‘Access-Control-Allow-Origin’ header is present on the requested resource.",因为AJAX的安全限制,它是不支持跨域的,我们需要通过技术手段来解决这个问题。 解决办法 曾经我们可使用JSONP (JSON with Padding)来实现跨域问题,简单来说就是,客户端发送一个AJAX请求,并在请求参数后面添加一个callback 参数,指向-一个JS函数(称为callback回调函数)。服务端返回了一个JavaScript 函数,该函数将JSON数据做了一个封装 ( Padding),就像这样allalk…});,这样我们只需要在客户端上定义一个callback 回调函数,就能获取从服务端返回的JSON数据了。JSONP看似简单好用,实际上它也有非常明显的限制:只支持GET请求,如果我们需要使用JSONP技术发送其他类型的请求(比如POST)就不太可能段来实现,比如iframe,但该方案过于烦琐

python之线程池

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-07 07:48:05
#!/user/bin/evn python # -*- coding:utf-8 -*- import threading import queue,time ''' 线程池的思路: 将任务依次放在队列里面 然后从队列取出任务交给线程执行 ''' stopEvent=object()#任务完了的标志---下面我们将任务包封装到元组中 class ThreadPool(object): def __init__(self,max_num): #创建队列 self.q=queue.Queue() #创建线程最大的数量(线程池的最大容量) self.max_num=max_num #空闲线程列表(数量) self.free_list=[] #真实创建的线程列表(数量) self.gemerate_list=[] #中断任务标志 self.terminal=False self.num=0 def run(self,func,args,callback=None): #func:任务函数 #args:任务函数的参数 #callback:线程执行成功或者失败后执行的回调函数 task=(func,args,callback)#将任务封装到元组中 ==任务包 #将任务包放到队列中 self.q.put(task) #创建线程 if len(self.free_list)==0 and len

Laravel5.7反序列化RCE漏洞分析

坚强是说给别人听的谎言 提交于 2020-03-06 16:45:54
前言 以前只是粗略的知道反序列化漏洞的原理,最近在学习Laravel框架的时候正好想起以前收藏的一篇反序列化RCE漏洞,借此机会跟着学习一下POP链的挖掘 简介 Laravel是一个使用广泛并且优秀的PHP框架。这次挖掘的漏洞Laravel5.7版本,该漏洞需要对框架进行二次开发才能触发该漏洞 本地环境 Laravel5.7.28 Wamper64+PHP7.3.5(PHP >= 7.1.3) 环境准备 使用composer部署Laravel项目 创建一个名为laravel的Laravel项目 composer create-project laravel/laravel=5.7.* --prefer-dist ./ Laravel框架为单入口,入口文件为 {安装目录}/public/index.php ,使用apache部署后访问入口文件显示 Laravel欢迎界面 即安装成功(或者使用命令 php artisan serve 开启临时的开发环境的服务器进行访问) 配置路由以及控制器 Laravel所有的用户请求都由路由来进行控制。我们添加一条如下的路由 <?php use \ Illuminate \ Support \ Facades \ Route ; /* |---------------------------------------------------------