一、JSONP
JSONP(JSON with Padding),前端+后端⽅计划,绕过跨域。前端结构script标签申请指定url(由script标签收回的get申请不受同源限度);服务器返回一个函数执行语句,函数与查问参数callback值对应,函数的参数为服务器返回的json数据;改函数在前端执行后即可获取数据。
如下结构3000端口的服务拜访客户端页面,而后去申请4000端口下的服务~~~~
客户端===》
<script>
function showInfo123(data) {
console.log('showInfo123', data)document.writeln(`Response: ${JSON.stringify(data)}`)
}
</script>
<script src="http://127.0.0.1:4000/getUser?callback=showInfo123"></script>
服务端===》
const http=require('http');
const urlModule = require('url')
const server = http.createServer((req,res)=>{
const {method}=req;
const { pathname: url, query } = urlModule.parse(req.url, true)
if (method == 'GET' && url == '/getUser') {
var data = {
name: 'luna',age: 18,gender: 'female'
}
var scriptStr = ${query.callback} (${JSON.stringify(data)})
console.log(scriptStr)
res.end(scriptStr)
}
})
server.listen(4000,()=>{
console.log('4000端口已启动')
})