跨域-JSONP
在HTML中请求一个script脚本并不会触发同源策略,可以进行跨域请求:JSONP=>json pending。
前端
1
2
3
4
5
6
7<script>
function getData(data){
console.log('getData:'+data);
}
</script>
<!-- 请求后端接口 -->
<script src="http://localhost:3000/d?pend=getData"></script>创建一个server
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16/* Node.js */
const http = require('http');
const url = require('url');
const PORT = process.env.PORT || 3000;
const server = http.createServer((req,res)=>{
let urlStr = req.url.split('?')[1];//请求的路径是如:/api?a=..那么就把a=...取到
//url.URLSearchParams 是一个类,用来解析参数
let urlSearchParam = new url.URLSearchParams(urlStr);
let data = 'data';
res.write(`${urlSearchParam.get('pend')}('${data}')`)
res.end();//通知客户端响应数据发送完毕
});
server.listen(PORT,'localhost',()=>{
console.log(`listening port ${PORT}`)
})