JSONP原理

JSONP原理

由于浏览器的安全性限制,不允许Ajax访问协议不同、域名不同、端口号不同的数据接口,浏览器认为这样的访问是不安全的,为了解决这个问题,可以通过动态创建script标签的形式,把script标签的src属性,指向数据接口的地址,因为script标签不存在跨域限制,这种数据获取方式,称为JSONP(根据原理,可得JSONP只支持Get请求)

客户端

<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>
		<script>
			function showInfo(data){
				console.log(data)

			}
		</script>
		<script src="http://127.0.0.1:3000/getdata?callback=showInfo"></script>
</body>
</html>	

服务端

const http = require('http')
const urlModule = require('url')
const server = http.createServer()
server.on('request', function (req,res) {
	const { pathname : url, query } = urlModule.parse(req,url,true)
	if (url === '/getdata') {
		var data = {
			name : jack,
			age : 18,
		}
		var scriptStr = `${query.callback}(${JSON.stringify(data)})`
		res.end(scriptStr)
	} else {
		res.end('404')
	} 
})
server.listen(3000, function(){
	console.log('server listen at http://127.0.0.1:3000')
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值