jsonp跨域:
动态创建script,借助script发送跨域请求,服务端返回的js语句,服务器端将要返回的数据,填充进js语句里返回,script收到js语句执行js语句,在ajax中添加dataType:jsonp
client.html
//引入jq.js
$("button").click(function(){
$ajax({
url:'http://localhost:3000',
type:'get',
dataType:'jsonp',
success:function(result){
alert(result)
}
})
})
如果把res.end()放到setTimeout里,可以看到函数的执行过程。
app.js
const http=require('http');
const url=require('url');
http.createServer(
(req,res)=>{
var url=url.parse(req.url,true);
var callback=url.query.callback;
var num='12345';
res.write(`${callback}($"{num}")`)
res.end();
}
).listen(3000);
jsonp是json的一种使用模式,用于解决主流浏览器的跨域数据访问的问题,由于同源策略,一般来说,server1.com的网页无法与不是server1的服务器沟通,而html的script是个例外,可以动态创建script