Jsonp 原理简述
浏览器因为安全问题而有一个同源策略,不允许跨域请求数据。但是 js 脚本资源和图片资源还是被允许跨域请求的。在 web 开发中,遇到要跨域请求 json 数据时,可以用 jsonp 的方式来绕过浏览器的同源策略。
现在,已经有很多工具将 jsonp 封装,如 jquery ,vue 等等。
那么封装起来的 ajxa 做了什么呢,个人认为主要有以下:
0、创建一个回调函数。有以下代码类似功能。
function callback (str){return JSON.parse(str); }
1、动态创建一个 script 标签,其中 src 中 query 部分告诉服务器自己要请求的数据以及回调函数的名字。
2、脚本返回后立即执行回调函数,该函数所携带的参数就是我们请求的数据。
// 后台返回的内容 callback({code:0});
3、删除创建的 script 标签。
4、删除创建的回调函数。
转载于:https://www.cnblogs.com/fenghen/p/8435904.html
Jsonp 原理简述相关推荐
- Ajax跨域:Jsonp原理解析
推荐先看下这篇文章:JS跨域(ajax跨域.iframe跨域)解决方法及原理详解(jsonp) JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重 ...
- JQuery实现Ajax跨域访问--Jsonp原理
JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制,被称为"Same-Origin Policy"(同源策略). ...
- JSONP原理以及安全问题
JSONP介绍 JSONP全称是JSON with Padding ,是基于JSON格式的为解决跨域请求资源而产生的解决方案.他实现的基本原理是利用了 HTML 里 元素标签没有跨域限制 JSONP原 ...
- Java中CAS(Compare And Swap,比较和交换)算法的技术原理简述
- title: Java中CAS(Compare And Swap,比较和交换)算法的技术原理简述 - date: 2021/8/14 文章目录 CAS全称 Compare And Swap,是一种 ...
- 电容三点式LC振荡器电路组成及工作原理简述
电容三点式LC振荡器电路组成及工作原理简述 [复制链接] husk2012 116 主题 21 好友 3550 积分 VIP会员 发消息 电梯直达 1# 发表于 2012-10-22 20: ...
- ELF PLT Hook 原理简述
[无线平台]ELF PLT Hook 原理简述 简述 Android 是基于Linux的操作系统,因此在Android开发平台上,ELF是原生支持的可执行文件格式:ELF文件格式除了作为可执行文件,还 ...
- Excel阅读模式/聚光灯开发技术之二 超级逐步录入提示功能开发原理简述—— 隐鹤 / HelloWorld...
Excel阅读模式/聚光灯开发技术之二 超级逐步录入提示功能开发原理简述---- 隐鹤 / HelloWorld 1. 引言 自本人第一篇博文"Excel阅读模式/单元格行列指示/聚光灯 ...
- php json 原理,基于JSONP原理详解
本文主要为大家推荐一篇基于JSONP原理解析,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧,希望能帮助到大家. 前言 我工作以来接触的第一个项目就是前后端分离的,前端静态文件有自己独 ...
- P型半导体,N型半导体,PN结原理简述
前置知识: 半导体器件是构成各种电子电路的基础.而半导体的器件主要是由半导体材料制成的:如硅和锗. 为什么要使用半导体材料作为器件? 这就跟半导体的特性相关,需要一些初高中的化学基础:在元素表中,元素 ...
- 跨域解决方法——jsonp原理
跨域解决方法--jsonp原理 一个域名地址的组成: 当协议.子域名.主域名.端口号任意一个不相同时,都算作不同域,不同域之间相互请求资源,就算做"跨域".由于浏览器同源策略的限制 ...
最新文章
- 飞书与德勤管理咨询达成战略合作,赋能企业实现智慧运营与管理
- linux操作小技巧
- Spring 事务传播行为的理解
- Docker最全教程之使用 Visual Studio Code玩转Docker(二十一)
- Ubuntu14.04 VSCode工程在root下无运行,在非root无法修改配置文件
- Linux基础(文件权限续篇)
- 内存占用少,计算速度快!华为诺亚方舟Lab开源即插即用的多用卷积核(NeurIPS 2018)...
- 高德地图iOS SDK使用
- Android源码之路(二、AsyncTask)
- decimal在java中用什么类型,MYSQL数据库 的 decimal 字段类型 和 Java 的BigDecimal
- php+mysql+json android 连接wamp
- 运行出现Server Tomcat v8.5 Server at localhost failed to start.和A child container failed during start...
- 大厂面试爱问的「调度算法」,20 张图一举拿下
- GBase 8atmp 目录权限改变导致加载失败
- python+opencv代码给证件照换底色(别再用PS啦)(转载)
- 表示学习(Representation Learning)之局部表示(Local Representation)与分布式表示(Distributed Representation)
- 基于SSM bootstrap的JSP MYSQL路路通汽车租赁系统
- arduino水温度传感器数字显示_温度传感器DS18B20
- ArduinoIDE初步开发ESP8266时钟
- Google Earth Engine(GEE)——MODIS影像StateQA波段bit去云