好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

2021年JSONP跨域原理及最优解决方案.docx

4页
  • 卖家[上传人]:氟****
  • 文档编号:195684039
  • 上传时间:2021-09-11
  • 文档格式:DOCX
  • 文档大小:46.57KB
  • / 4 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 精品word学习资料可编辑关于 JSONP 跨域请求数据的原理及最优解决方案什么是 JSONP ?它的实现原理?JSONP即 JSON with Padding ;由于同源策略的限制, XmlHttpRequest 只答应请求当前源(域名,协议,端口)的资源;假如要进行跨域请求,我们可以通过使用 html 的script 标记来进行跨域请求,并在响应中返回要执行的 script 代码,其中可以直接使用JSON传递 javascript 对象;这种跨域的通讯方式称为 JSONP;其实说白了,就是利用 script 标签这种不受跨域的限制向服务器发送一个请求,服务器端返回的为一个可执行的 javascript 文件,如下代码示例:名师归纳总结——欢迎下载精品word学习资料可编辑|精.|品.|可.|编.|辑.|学.|习.|资.|料.1. 2.

      3.4. 第一向服务器端发起一个请求并传入参数 user_id ,服务器端返回的数据如下:1. window [ "jsonp" ] = { 2. "id" : "12" ,3. "name" : "jsonp"4. }优化方案服务器端返回的 JSON 格式的数据直接赋值给 window 下的 jsonp 变量,这样在页面中就可以通过 jsonp 这个变量取得数据了;不过上面的代码看起来并不文静,我们把 script 标签直接写在了请求的页面中,这样存在一个风险,假如我们在没有拿到数据前就用了 jsonp 这个变量, js 就会报错,堵塞后面脚本的执行;之前一篇中提到过无堵塞式加载 js,我们可以通过动态创建 script 标签,异步向服务器端发送请求,代码如下:1.
      2.3. 29.30.我们把动态创建 script 标签的方法封装在 loadScript() 方法中,接受两个参数,一个是请求的 url ,另外一个是请求成功后的回调函数,这样就可以保证我们执行的代码是在请求成功之后执行的,这样就不会造成先执行,但仍没有请求成功的问题;但是我们仍发觉一个问题,服务器端返回的 JSON 格式的数据是直接赋值给了 window 下的全局变量,这样对全局造成了污染,并不好;更好的解决方法是在请求的 url 后加一个回调函数的参数,如下代码所示:名师归纳总结——欢迎下载精品word学习资料可编辑|精.|品.|可.|编.|辑.|学.|习.|资.|料.1.
      2.3. 29.30.名师归纳总结——欢迎下载精品word学习资料可编辑此时服务器端返回的数据为,如后端语言为php ,就返回的代码为:1. echo $_GET [ "callback"]. "( { "id ": " 12 ", "name ": "jsonp "} )"这样就可以解决变量全局污染的问题,同时也让我们的接口变得更加通用,而不是写死的;JSONP 的不足之处及安全问题JSONP 的好处就是能够很好的解决跨域请求的问题,但是也有一些不足之处:.请求的状态不够丰富,我们只能侦听请求成功时的状态,假如请求失败,我们无法通过一个状态码知晓,所以假如请求失败的话,没有任何反馈给用户,可能会造成用户的困惑;.由于 script 标签不受同源的限制,同时也造成了一些安全性的问题使用远端网站的 script 标签会让远端网站得以注入任何的内容至网站里;假如远端的网站有 JavaScript 注入漏洞,原先的网站也会受到影响;.现在有一个正在进行方案在定义所谓的JSON-P 严格安全子集,使浏览器可以对MIME 类别是 “ application/json-p ”请求做强制处理;假如回应不能被解析为严格的JSON-P,浏览器可以丢出一个错误或忽视整个回应;|精.|品.|编.|可.|辑.|习.|学.|资.|料.名师归纳总结——欢迎下载。

      点击阅读更多内容
      相关文档
      Unit2 Health and Fitness语法课件-(高教版2023·基础模块2).pptx 九年级数学提升精品讲义 用配方法求解一元二次方程(原卷版).docx 九年级数学提升精品讲义 一元二次方程的根与系数的关系(解析版).docx 2025学年九年级化学优学讲练(人教版) 化学实验与科学探究(解析版).docx 九年级数学提升精品讲义 一元一次不等式与一元一次不等式组(原卷版).docx 九年级数学提升精品讲义 因式分解(解析版).docx 九年级数学提升精品讲义 相似三角形的性质(原卷版).docx 2025年 初中七年级数学 相交线与平行线 知识突破速记与巧练(原卷版).docx 九年级数学提升精品讲义 中点模型之斜边中线、中点四边形(解析版).docx 2025学年九年级化学优学讲练(人教版) 分子和原子(解析版).docx 九年级数学提升精品讲义 正方形的性质(原卷版).docx 九年级数学提升精品讲义 用因式分解法求解一元二次方程(解析版).docx 2025年 初中七年级数学 实数 知识突破速记与巧练(原卷版).docx 九年级数学提升精品讲义 应用一元二次方程(原卷版) (2).docx 2025年 初中七年级数学 相交线与平行线 压轴专练速记与巧练(解析版).docx 九年级数学提升精品讲义 用公式法求解一元二次方程(解析版).docx 2025学年九年级化学优学讲练(人教版) 化学方程式的书写(原卷版).docx 九年级数学提升精品讲义 应用一元二次方程(解析版) (2).docx 2025年 初中七年级数学 数据的收集、整理与描述 综合测试速记与巧练(解析版).docx 九年级数学提升精品讲义 中点模型之斜边中线、中点四边形(原卷版).docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.