2021-02-08

本文探讨了JSONP的工作原理,解释了为什么通过动态生成script标签和callback参数可以实现跨域数据获取。在Node.js环境中,服务器端接收到请求后,使用fs模块读取文件并将其转换为正确格式的JSON数据。通过将数据包装到callback函数中,服务器返回带有数据的函数调用,客户端接收到响应后执行该函数,从而解码JSONP数据。
摘要由CSDN通过智能技术生成

nodejs之理解jsonp原理

一、jsonp实现(构造)原理:
1、疑问:
(1)为什么jsonp的写法中只需要写一个 ? 加 一个参数如callback再结合动态生成script标签就可以得到数据?
(2)jsonp在服务器端怎么形成从而进行传送的呢?
2、思考:从一个nodejs搭建的简易服务器中看,
(1)服务器端接收客户端的request请求时,进行数据寻找收集,并返回数据响应,
① 试验手写的对象,let person1 = {name: “lin”, age: 22};
② 试验文件模块fs读取一个文件夹里面的文件(列表);
let fs1 = require(‘fs’);
let h1 = require(‘http’);
let s1 = h1.createServer();
s1.on(‘request’, function(req, resp) {
fs1.readdir(‘d:/’, function(err, data) {resp.end(data);});
});
// 这里就有个错误,返回的数据不是正确的,它是[object Object],这是我想要的吗?当然不是!所以这时要用JSON的stringify()方法将这个文件列表包装成保存为正确的格式,以防数据变质变样,之后客户端再用JSON的parse()方法解析转换一下就行。
// 同理,上面的对象数据也要这样做
(2)保存为正确的数据格式后,在服务器端就把数据塞进参数中,请求路径中的callback这个参数相当于一个函数,数据传送回来时就是携带了响应数据的函数。
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值