当前位置: 首页 > article >正文

JSONP 实现跨域请求案例

后端使用 express 搭建,案例代码如下:

const express = require('express')

const app = express()
const PORT = 3000

app.get('/data', (req, res) => {
    const jsonData = {
        name: 'Alan',
        age: 666,
        city: 'GD'
    }
    const callback = req.query.callback // 获取前端中的回调函数名称
    if (callback) {
        res.send(`${callback}(${JSON.stringify(jsonData)})`)
    } else {
        res.status(400).send('Callback function name is required')
    }
})

app.listen(PORT, () => { console.log(`listen http://localhost:${PORT}`) })

前端发起 JSONP 请求,实现跨域数据请求

<body>
    <pre></pre>
    <script>
        // 定义一个回调函数来处理 JSONP 响应
        function handleJsonpData(data) {
            // 输出 JSONP 数据
            document.querySelector('pre').innerText = JSON.stringify(data, null, 4)
        }

        // 创建一个 script 标签,设置 src 属性为 JSONP 请求的 URL,并指定回调函数名
        const script = document.createElement('script')
        script.src = 'http://localhost:3000/data?callback=handleJsonpData'

        // 将 script 标签添加到文档中,触发 JSONP 请求,
        // 然后服务器放回的字符串会被当成 js 命令执行,从而调用我们前面定义的函数
        // 这样就可以获取到服务器的数据了
        document.body.appendChild(script)
    </script>
</body>

</html>

效果

在这里插入图片描述
在这里插入图片描述


http://www.kler.cn/a/274755.html

相关文章:

  • 图书馆管理系统(三)基于jquery、ajax
  • Java游戏开发基础:从零开始制作一个简单的2D游戏
  • MyBatis入门的详细应用实例
  • C 数组:索引魔杖点化的数据星图阵列
  • [网络安全]XSS之Cookie外带攻击姿势详析
  • web3跨链桥协议-Nomad
  • Python分析无人驾驶汽车在桂林市文旅行业推广的问卷
  • 00_coolprop_in_matlab在Matlab中使用CoolProp
  • 飞天使-k8s知识点26-kubernetes温故知新1-pod
  • 在idea中配置tomcat服务器,部署一个项目(下载教程加链接)
  • 【爬虫】实战-爬取Boss直聘信息数据
  • docker小白第十四天之Portainer与CIG
  • Go语言之函数、方法、接口
  • 数据在内存中的存储(C语言)(难点,需多刷几遍)
  • Nginx发布之后可以使用IP访问,不能使用localhost访问, Nginx发布之后可以使用localhost访问,不能使用IP访问,
  • Selenium WebDriver使用EC来定义显式等待的条件
  • Python内置对象
  • react中useContext的用法
  • 万用表革新升级,WT588F02BP-14S语音芯片助力智能测量新体验v
  • 服务器端(Debian 12)配置jupyter与R 语言的融合
  • Java项目基于SpringBoot和Vue的时装购物系统的设计与实现
  • C#基础语法学习笔记(传智播客学习)
  • [Qt学习笔记]Halcon窗口界面上显示文字的字体尺寸、样式修改
  • GO-Gin-Example 第六部分 将Golang应用部署到Docker
  • 【MySQL】知识点 + 1
  • 什么是Spring Boot