浏览器因为安全问题而有一个同源策略,不允许跨域请求数据。但是 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 原理简述相关推荐

  1. Ajax跨域:Jsonp原理解析

    推荐先看下这篇文章:JS跨域(ajax跨域.iframe跨域)解决方法及原理详解(jsonp) JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重 ...

  2. JQuery实现Ajax跨域访问--Jsonp原理

    JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制,被称为"Same-Origin Policy"(同源策略). ...

  3. JSONP原理以及安全问题

    JSONP介绍 JSONP全称是JSON with Padding ,是基于JSON格式的为解决跨域请求资源而产生的解决方案.他实现的基本原理是利用了 HTML 里 元素标签没有跨域限制 JSONP原 ...

  4. Java中CAS(Compare And Swap,比较和交换)算法的技术原理简述

    - title: Java中CAS(Compare And Swap,比较和交换)算法的技术原理简述 - date: 2021/8/14 文章目录 CAS全称 Compare And Swap,是一种 ...

  5. 电容三点式LC振荡器电路组成及工作原理简述

    电容三点式LC振荡器电路组成及工作原理简述 [复制链接]     husk2012 116 主题 21 好友 3550 积分 VIP会员 发消息 电梯直达 1#  发表于 2012-10-22 20: ...

  6. ELF PLT Hook 原理简述

    [无线平台]ELF PLT Hook 原理简述 简述 Android 是基于Linux的操作系统,因此在Android开发平台上,ELF是原生支持的可执行文件格式:ELF文件格式除了作为可执行文件,还 ...

  7. Excel阅读模式/聚光灯开发技术之二 超级逐步录入提示功能开发原理简述—— 隐鹤 / HelloWorld...

    Excel阅读模式/聚光灯开发技术之二 超级逐步录入提示功能开发原理简述---- 隐鹤  /  HelloWorld 1. 引言 自本人第一篇博文"Excel阅读模式/单元格行列指示/聚光灯 ...

  8. php json 原理,基于JSONP原理详解

    本文主要为大家推荐一篇基于JSONP原理解析,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧,希望能帮助到大家. 前言 我工作以来接触的第一个项目就是前后端分离的,前端静态文件有自己独 ...

  9. P型半导体,N型半导体,PN结原理简述

    前置知识: 半导体器件是构成各种电子电路的基础.而半导体的器件主要是由半导体材料制成的:如硅和锗. 为什么要使用半导体材料作为器件? 这就跟半导体的特性相关,需要一些初高中的化学基础:在元素表中,元素 ...

  10. 跨域解决方法——jsonp原理

    跨域解决方法--jsonp原理 一个域名地址的组成: 当协议.子域名.主域名.端口号任意一个不相同时,都算作不同域,不同域之间相互请求资源,就算做"跨域".由于浏览器同源策略的限制 ...

最新文章

  1. 飞书与德勤管理咨询达成战略合作,赋能企业实现智慧运营与管理
  2. linux操作小技巧
  3. Spring 事务传播行为的理解
  4. Docker最全教程之使用 Visual Studio Code玩转Docker(二十一)
  5. Ubuntu14.04 VSCode工程在root下无运行,在非root无法修改配置文件
  6. Linux基础(文件权限续篇)
  7. 内存占用少,计算速度快!华为诺亚方舟Lab开源即插即用的多用卷积核(NeurIPS 2018)...
  8. 高德地图iOS SDK使用
  9. Android源码之路(二、AsyncTask)
  10. decimal在java中用什么类型,MYSQL数据库 的 decimal 字段类型 和 Java 的BigDecimal
  11. php+mysql+json android 连接wamp
  12. 运行出现Server Tomcat v8.5 Server at localhost failed to start.和A child container failed during start...
  13. 大厂面试爱问的「调度算法」,20 张图一举拿下
  14. GBase 8atmp 目录权限改变导致加载失败
  15. python+opencv代码给证件照换底色(别再用PS啦)(转载)
  16. 表示学习(Representation Learning)之局部表示(Local Representation)与分布式表示(Distributed Representation)
  17. 基于SSM bootstrap的JSP MYSQL路路通汽车租赁系统
  18. arduino水温度传感器数字显示_温度传感器DS18B20
  19. ArduinoIDE初步开发ESP8266时钟
  20. Google Earth Engine(GEE)——MODIS影像StateQA波段bit去云

热门文章

  1. ngix请求转发配置
  2. PyQt4--QPushButton(click)类的信号
  3. Java制作五子棋人机对战
  4. 文件类型识别工具:TrID(trid)下载安装及使用
  5. 思科路由器OSPF配置实例
  6. 芒果 mysql插件,NoSQL代表:MongoDB(芒果数据库)
  7. 4k电视测试软件准确吗,如何检测自家的电视是真4K还是假4K?当贝市场告诉你
  8. Python redis安装使用教程
  9. 新大一C语言程序设计与算法入门学习路线
  10. 元宇宙游戏控制这几个因素,正确姿势解锁元宇宙游戏开发盈利痛点