2.jsonp实现跨域

整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦

JSONP跨域的原理
1.img、script等标签的src属性,它不受同源策略限制
2.JSONP请求数据时,服务端返回的时一段可执行的js代码
JSONP用途:解决请求其他服务器时的跨域问题
JSONP局限:只能get方式,需要服务器做一些处理,配置

客户端

<button id="btn">跨域请求按钮</button>
<script>
  let btn = document.querySelector("#btn")
  btn.addEventListener('click',function(e){
    let script = document.createElement('script')
    let name = "xiaoliu" + parseInt(Math.random()*1000,10)
    window[name] = (data) =>{ 
      console.log(data)
    }
    script.src = "http://localhost:3001/jsonp_data?callback=" + name
    document.body.appendChild(script)
    script.onload = (e)=>{
      e.currentTarget.remove()//运行完,删除script标签
      delete window[name]
    }
  })
</script>

服务端

const express = require('express')
let app = express()
app.get("/jsonp_data",(req,res)=>{
  console.log(req.query)
  let callback = req.query.callback
  //返回一段可执行的js代码
  let data = callback + "({'name':'xiaoliu'})"
  res.send(data)
})
app.listen(3001,()=>{
  console.log('小刘的服务器')
})

这里扩展下

event.target:触发事件的事件源对象。
event.currentTarget:事件绑定的那个对象, 也就是绑定处理函数内部的this
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柳晓黑胡椒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值