原理:有些标签天生具有跨域能力,比如:img,link,iframe,script,Jsonp就是利用script的跨域能力来发送请求的,服务器端返回的是一个回调函数,由于jsonp只能请求资源文件,所以Jsonp只能发送get请求.
原生ajax发送jsonp
<script>
// 创建一个script标签
let script = document.createElement('script')
// 设置script的src属性
script.src = 'http://localhost:3000/jsonp1'
// 将标签插入文档中
document.body.appendChild(script)
</script>
服务器端
app.use('/jsonp1',(req,res)=>{
res.end('console.log("hello jsonp")')
})
ajax发送请求
(function(){
$.ajax({
url:'http://localhost:3000/jsonp',
dataType:'jsonp',
success:(res)=>{
console.log(res);
}
})
})()
服务器端
app.use('/jsonp',function(req,res){
res.jsonp({
message:'jsonp',
code:200,
})
})