node服务器实现jsonp

服务器代码

//1. 导入 http 模块
const express = require('express');
const app = express();
app.get('/', (req, res) => {
	let { wd, callback } = req.query;
	res.send(`${callback}({ "name": "gpc" })`)
});
//3. 开启服务器
app.listen(3000, () => {
	console.log('Server is running...');
});

前端代码

	//写一个jsonp的实现,前后
	function jsonp(url, fn) {
		//路径和回调函数
		//cbName是自己随便起的名字,这个名字用来接收回调函数
		const cbName = 'cb' + Math.random().toString().replace('.', '');
		//路径拼接回调函数的名字
		url += '&callback=' + cbName;
		//创建script标签
		let script = document.createElement('script');
		//设置src
		script.src = url;
		//window下取这个名字,拿回调函数接收值
		window[cbName] = cdData => {
			//cbData 这个值在这里就拿到了
			fn(cdData);
			//接收完了,就移除并且置为空 提升性能
			document.body.removeChild(script);
			window[cbName] = null;
		}
		//把创建好的script标签添加到body里面
		document.body.appendChild(script);
	}
	//利用百度实现jsonp
	// const url = 'https://m.baidu.com/sugrec?prod=wise&wd=' + '搜索关键字'
	//这个地址是自己本地node写的服务器
	const url = 'http://localhost:3000?wd=gpc'
	// 执行jsonp的函数,传入地址和接收值的回调函数,
	jsonp(url, data => {
		console.log(data);
	})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值