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

【Ajax】笔记-jsonp实现原理

JSONP

  1. JSONP是什么
    JSONP(JSON With Padding),是一个非官方的跨域解决方案,纯粹凭借程序员的聪明才智开发出来的,只支持get请求。
  2. JSONP 怎么工作的?
    在网页有一些标签天生具有跨域能力,比如:img link iframe script.
    JSONP就是利用Script标签的跨域能力来发送请求的
  3. JSONP的使用
    1. 动态的创建一个script标签
      var script=document.createElement(“script”);
    2. 设置script 的src,设置回调函数
script.src = "http://localhost:3000/testAJAX?callback=abc";
function abc(data) {
alert(data.name);
}
3. 将script 添加到body中document.body.appendChild(script);4.服务器中路由的处理
router.get("/testAJAX" , function (req , res) {
console.log("收到请求");
var callback = req.query.callback;
var obj = {
name:"孙悟空", age:18
}
res.send(callback+"("+JSON.stringify(obj)+")");
});

案例分析

html:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>原理演示</title><style>#result {width: 300px;height: 100px;border: solid 1px #78a;}</style>
</head><body><div id="result"></div><script>//处理数据function handle(data) {//获取 result 元素const result = document.getElementById('result');result.innerHTML = data.name;}</script><!-- <script src="http://127.0.0.1:5500/%E8%AF%BE%E5%A0%82/%E4%BB%A3%E7%A0%81/7-%E8%B7%A8%E5%9F%9F/2-JSONP/js/app.js"></script> --><script src="http://127.0.0.1:8000/jsonp-server"></script>
</body></html>

server:

//jsonp服务
app.all('/jsonp-server',(request, response) => {// response.send('console.log("hello jsonp")');const data = {name: '德仔dezai'};//将数据转化为字符串let str = JSON.stringify(data);//返回结果response.end(`handle(${str})`);});

在这里插入图片描述

http://www.lryc.cn/news/99826.html

相关文章:

  • LLM - Chinese-Llama-2-7b 初体验
  • transformer代码注解
  • 【产品经理】高阶产品如何处理需求?(3方法论+2案例+1清单)
  • Neo4j数据库中导入CSV示例数据
  • 第四章 No.1树状数组的原理与使用
  • mysql(五)主从配置
  • 扫地机语音提示芯片,智能家居语音交互首选方案,WT588F02B-8S
  • ChatGPT | 分割Word文字及表格,优化文本分析
  • 基于JavaSE的手机库存管理系统
  • 驱动开发 day4 (led灯组分块驱动)
  • electron dialog.showMessageBox使用案例
  • 代码随想录算法训练营第二十二天 | 读PDF复习环节2
  • TimescaleDB时序数据库初识
  • Numpy-聚合函数
  • 企业博客资讯如何高效运营起来?
  • 跟我学c++中级篇——模板的继承
  • 需求分析案例:消息配置中心
  • 自动化测试——环境
  • 短视频矩阵营销系统技术开发者开发笔记分享
  • vue2和vue3引用ueditor的区别
  • 【每日运维】RockyLinux8非容器化安装Mysql、Redis、RabitMQ单机环境
  • 第一次后端复习整理(JVM、Redis、反射)
  • python的web学习(一)-初识django
  • JavaWeb+jsp+Tomcat的叮当书城项目
  • 【嵌入式Linux系统开发】——系统移植概述
  • 升讯威在线客服系统是如何实现对 IE8 完全完美支持的(怎样从 WebSocket 降级到 Http)【干货】
  • 用VMware给运行在VMware上的CentOS7生成一个以SSH方式连接VMware上的CentOS7的运行在Windows上的命令行窗口
  • C语言基础-3
  • Python 编程规范进阶(1) | 命名规范
  • 算法----二叉搜索树中第K小的元素