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

网站快捷按钮以什么方式做公司品牌推广方案范文

网站快捷按钮以什么方式做,公司品牌推广方案范文,互联网网站制作公司哪家好,国内跨境电商平台有哪些?&#x1f9e0; 一、JSONP 是什么&#xff1f; 项目内容&#x1f4cc; 全称JSON with Padding&#x1f4cd; 用途跨域请求数据的一种方式&#xff0c;绕过同源策略&#x1f4e6; 本质通过 <script> 标签加载远程 JS 文件&#xff0c;这个文件执行一个回调函数并传入数据 …

🧠 一、JSONP 是什么?

项目内容
📌 全称JSON with Padding
📍 用途跨域请求数据的一种方式,绕过同源策略
📦 本质通过 <script> 标签加载远程 JS 文件,这个文件执行一个回调函数并传入数据

🔍 二、JSONP 工作原理(层层递进)

  1. 定义全局回调函数

    function jsonpCallback(data) { console.log(data); }
    
  2. 创建 <script> 标签并设置 src

    script.src = 'http://example.com/api?callback=jsonpCallback';
    
  3. 服务器响应 JavaScript 代码

    jsonpCallback({ name: "Tom" });
    
  4. 浏览器执行返回的代码

    • 调用了你定义的 jsonpCallback 函数
    • 参数就是服务端返回的数据 ✅

❌ 三、常见错误

错误原因解决方式
meta charset="UTF - 8"有空格,浏览器不识别改为 UTF-8
回调函数未定义或冲突多个请求使用相同名字封装自动生成函数名
无法处理失败请求script 无 onerror 支持使用 timeout 模拟失败处理

🔧 四、封装 JSONP 工具函数(现代化 Promise 版)

✅ 功能要点:

  • 支持 URL 和参数拼接
  • 自动生成唯一回调名
  • 超时处理
  • 自动清理 script 和回调函数
  • 支持 Promise,可以用 .thenasync/await

✅ 封装代码:

function jsonp(url, params = {}, timeout = 5000) {return new Promise((resolve, reject) => {const callbackName = `jsonp_cb_${Date.now()}_${Math.random().toString().slice(2)}`;params.callback = callbackName;const queryString = Object.entries(params).map(([key, val]) => `${encodeURIComponent(key)}=${encodeURIComponent(val)}`).join('&');const script = document.createElement('script');script.src = `${url}?${queryString}`;script.async = true;window[callbackName] = (data) => {clearTimeout(timer);resolve(data);cleanup();};const timer = setTimeout(() => {reject(new Error('JSONP request timeout'));cleanup();}, timeout);function cleanup() {script.remove();delete window[callbackName];}document.body.appendChild(script);});
}

✅ 使用示例:

jsonp('http://example.com/api', { foo: 'bar' }).then(data => console.log('成功获取数据:', data)).catch(err => console.error('失败:', err));

🚀 五、JSONP 的优劣对比

优势局限
兼容老浏览器、实现跨域只能 GET 请求
使用简单安全性差(可能被注入恶意代码)
不依赖 XMLHttpRequest不支持 HTTP 状态码、错误处理有限

🧩 六、扩展方向(可选封装能力)

  • 支持取消请求(Abort)
  • 支持 callback 参数名自定义(如 cbfunc
  • 支持多个 JSONP 同时请求(自动管理全局空间)

http://www.dtcms.com/wzjs/241514.html

相关文章:

  • 焦作做网站公司比百度还强大的搜索引擎
  • 用什么做淘宝客网站好网站推广联盟
  • 可以做防盗水印的网站宁波怎么优化seo关键词
  • 检测网站是否做了301网站点击软件排名
  • 大连网站制作公司费用多少西安网站建设哪家好
  • 简历模板个人简历电子版免费可编辑太原网站优化公司
  • 微信网站开发系统武汉百度搜索优化
  • 网站解析后 问题九幺seo工具
  • 嘉兴网站建设哪家好教育培训机构排名前十
  • 中企动力做网站的价格网站设计平台
  • 上海网站建设系天天自学网网址
  • 网站构建流程武汉网站搜索引擎优化
  • 网站建设陕icp设计培训学院
  • 网站是否有备案短视频推广策略
  • bootstrap风格网站百度代运营
  • 做企业网站需要收费吗广东知名seo推广多少钱
  • 江苏省建设工程地方标准网站微信公众号的推广
  • 众筹网站建设百度广告服务商
  • 山西省两学一做网站银川seo优化
  • 彩票型网站建设百度指数官网数据
  • 企业网站建设的常见流程河南seo推广
  • 建设什么网站游戏优化大师手机版
  • 网站建设公司人员配备百度网页版登录
  • 做seo的网站西安seo关键词查询
  • 黑河市建设局网站南宁百度seo排名优化软件
  • 网站与域名的区别视频号广告推广
  • 举报不良网站信息怎么做志鸿优化设计答案网
  • 邯郸做网站找哪家好应用商店下载安装
  • 网页制作做网站左侧导航今日军事新闻最新消息新闻报道
  • 视觉设计师培训做排名优化