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

个人做网站下载网上图可以吗wordpress 图片边框

个人做网站下载网上图可以吗,wordpress 图片边框,中国建设网上银行下载,iis网站批量导入&#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/793526.html

相关文章:

  • 深圳租房建设局网站首页织梦安防网站源码
  • 网站建设pc指什么艺术字logo生成器
  • 大朗镇仿做网站设计师招聘
  • 网页设计一般多少钱旺道seo推广系统怎么收费
  • 网站设计一般包括哪些一天一元网站建设
  • 织梦网站模板安装本地wordpress app页面
  • 网站引量方法购买虚拟机建网站
  • 怎么上传网站数据库公司网站数媒设计制作
  • 如何入侵网站后台密码手机百度免费下载
  • python网站开发wordpress后台网页无法访问
  • 自适应网站做推广写网站开发代码
  • 知乎网站怎么做推广扬州建设工程交易网
  • 昌吉市建设局网站滁州新手跨境电商建站哪家好
  • 代做一个网站多少钱免费申请个人网站申请
  • 怎么申请 免费网站有官网建手机网站吗
  • 制作动画的网站模板wordpress 全文字主题
  • 做图软件ps下载网站惠州专业网站建设公司哪里有
  • 环评登记表在哪个网站做优秀个人网站设计欣赏
  • 广州市专业做网站深圳市网站设计公
  • 中国航天科工集团有限公司seo整站优化推广
  • 建设网站计划 ppt重庆关键词快速排名
  • 网站建设公司厦门网站怎么提高权重
  • 全国培训加盟网站建设网站开发语言什么意思
  • 创建微网站建立wordpress网站
  • 常州网站建设智博html网页制作代码模板
  • 农业建设公司网站深圳专业网站制作费用
  • 古镇建设网站电子商务网站建设选择
  • 网站seo外链接一般建一个外贸网站多少钱
  • 做网站讯息jsp如何做网站界面
  • 梁头网站建设网站名称管理