博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSONP实现原理-简析
阅读量:5886 次
发布时间:2019-06-19

本文共 1190 字,大约阅读时间需要 3 分钟。

使用script标签是如何实现跨域请求的,它是一个新技术,还是一个技巧? 下面我们来看看,其中简单的原理:

我们写一个很平常的example.js,文件内容展示如下:

getJson({    results: [        {            name: 'xxx',            code: 1        }    ]});复制代码

接下来,再写一个简单的index.html文件:

      
jsonp 复制代码

上面的index.html代码,当成功的请求到example.js后,相当于这样:

      
jsonp 复制代码

相信写到这里,是能看得明白的,下面正式开始说JSONP的实现,我用的是nodejs后台:

前端代码index.html,给"://127.0.0.1:3000/example.js"请求地址加一个get请求参数?callback=getJson,代码示例如下:

      
jsonp 复制代码

后端server.js代码如下:

const express = require('express');const server = express();server.use('/example.js', (req, res) => {  // req.query.callback是getJson  let methodName = req.query.callback;   let data = {     results: [       {         name: 'xxx',         code: 1       }     ]   };  let dataStr = JSON.stringify(data),      // 相当于sendStr = `getJson(${dataStr})`      sendStr = `${methodName}(${dataStr})`;  res.send(sendStr);});server.listen(3000);console.log('server running at 127.0.0.1:3000');复制代码

当请求成功后,index.html代码解析如下:

      
jsonp 复制代码

最后声明,为了方便大家理解,我把请求写成了一个example.js,其实接口只要一个字符串就可以了,例如"",其中.js文件格式,完全是为了帮助大家理解。

转载于:https://juejin.im/post/5c8c9393e51d452865236ad3

你可能感兴趣的文章
我的大学
查看>>
Google翻译接口收费啦
查看>>
Debian+Apache2服务器
查看>>
MySQL库和表的操作
查看>>
shell编程:编译器、解释器 变量
查看>>
yum仓库一些简单介绍
查看>>
HashMap----工作原理
查看>>
nodejs 安装 postgresql module
查看>>
【转】iOS学习之iOS禁止Touch事件
查看>>
Java8新特性之Collectors
查看>>
怎么用CorelDRAW制作表格
查看>>
eclipse智能配置
查看>>
安装Scrapy遇到的问题处理
查看>>
个人作业——软件产品案例分析
查看>>
Java学习:方法重载的使用规则
查看>>
ASP.NET MVC 防止CSRF攻击
查看>>
EF:无法检查模型兼容性,因为数据库不包含模型元数据。
查看>>
0和5
查看>>
C# WinFrom一些技术小结
查看>>
hdu5001 Walk 概率DP
查看>>