首页 > 其他分享 >面试-JS Web API-JSONP和cors

面试-JS Web API-JSONP和cors

时间:2024-09-12 18:36:29浏览次数:9  
标签:Web console 请求 标签 cors JS JSONP data 客户端

JSONP( JSON with Padding )

JSONP是通过 <script> 标签来实现跨域数据传输的技术。它是为了绕过浏览器的同源策略限制而诞生的。

  • 访问一个网址,服务端一定返回一个html文件吗? ---不是的
  • 服务器可以任意动态拼接数据返回的,只要符合html格式的要求就可以。

JSONP的工作原理:

  • 客户端发送请求:客户端创建一个 <script> 标签,并将数据请求的 URL 设置为该标签的 src 属性。
<script src="http://example.com/data?callback=handleResponse"></script>
  • 服务器返回响应:服务器会将返回的数据包装成一个函数调用的形式,并返回给客户端。
handleResponse({
  "name": "TechRxRepair",
  "location": "Tulsa"
});
  • 客户端执行函数:客户端定义好回调函数,接收服务器传回的数据并处理。
function handleResponse(data) {
  console.log(data.name);  // 输出 'TechRxRepair'
  console.log(data.location);  // 输出 'Tulsa'
}

手动创建<script>标签的方式,或使用已有的库来简化JSONP请求,such as用jQuery发起JSONP请求:

$.ajax({
  url: "http://example.com/data",
  dataType: "jsonp",
  success: function(data) {
    console.log(data);
  }
});

由于 <script> 标签的限制,JSONP 只能发送 GET 请求,无法用于 POST 等请求方法。

cors
JSONP 现在已经较少使用,因为现代的跨域通信通常采用 CORS(跨源资源共享)。不过在历史上,JSONP 解决了早期 AJAX 无法跨域的问题,被广泛使用在老的项目或第三方API调用中。

标签:Web,console,请求,标签,cors,JS,JSONP,data,客户端
From: https://www.cnblogs.com/gardenOfCicy/p/18410766

相关文章

  • 让小爱音箱播放电脑/NAS上歌曲,支持自动从哔哩哔哩/油管下载歌曲,无需刷机。支持语音控
    小米AI音箱很多人都有,但使用中播放歌曲时总是提示仅能播放试听版,不能完整听歌,很烦人。今天介绍的方法就是要彻底解决这个问题,实现让小爱AI音箱能够播放本地歌曲,本地没有的歌曲还能自动从网上搜索下载的功能。已测试支持的设备:型号名称L06A小爱音箱L07ARedmi小爱音......
  • js | TypeError: Cannot read properties of null (reading ‘indexOf’) 【解决】
    js|TypeError:Cannotreadpropertiesofnull(reading‘indexOf’)【解决】描述概述在前端开发中,遇到TypeError:Cannotreadpropertiesofnull(reading'indexOf')这类错误并不罕见。这个错误通常表明你试图在一个null值上调用indexOf方法,而null是一......
  • 简单聊聊 CORS 攻击与防御
    我们是袋鼠云数栈UED团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。本文作者:霁明什么是CORSCORS(跨域资源共享)是一种基于HTTP头的机制,可以放宽浏览器的同源策略,实现不同域名网站之间的通信。前置知识同源定义:协......
  • 面试-JS Web API
    手写一个简易的Ajax跨域的常用实现方式GET请求//创建一个XMLHttpRequest对象constxhr=newXMLHttpRequest();//初始化一个GET请求//第三个参数true表示异步,一般都为truexhr.open('GET','/data/test.json',true);//设置事件处理函数,当readyState......
  • 一个用于管理多个 Node.js 版本的安装和切换开源工具
    大家好,今天给大家分享一个用于管理多个Node.js版本的工具 NVM(NodeVersionManager),它允许开发者在同一台机器上安装和使用不同版本的Node.js,解决了版本兼容性问题,为开发者提供了极大的便利。在开发环境中,特别是在处理多个项目时,每个项目可能依赖于不同版本的Node.js,NVM提供......
  • Langchain.js如何实现RAG
    前面介绍了Langchain的基本使用方法。仅仅是对GPT方法的封装还不足以让它赢得那么多的Start,以及获得融资。它还有另一个强大的功能-RAG(检索增强生成)。RAG是大模型跟企业内部业务落地的基石。是大模型的北斗导航,可以让大模型的结果更加精准。一、RAG的基本概念与实现流程基于大......
  • 基于Node.js+vue中心医院药品管理系统的设计与实现(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着医疗技术的不断进步和人们对健康需求的日益增长,中心医院作为医疗服务的重要载体,其运营效率和管理水平直接影响到患者的治疗效果与满意度。药品作为医疗......
  • 基于Node.js+vue基于springboot的影视资讯管理系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着互联网的飞速发展,影视行业迎来了前所未有的繁荣期。海量影视资源的涌现,使得用户对于高效、便捷地获取影视资讯的需求日益增长。传统的影视资讯管理方式......
  • 基于Node.js+vue在线新闻网站系统的设计与实现(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景在信息爆炸的时代,新闻资讯的获取与传播速度成为了衡量一个社会信息化水平的重要指标。随着互联网技术的飞速发展,传统新闻媒体逐渐向数字化、网络化转型,在线......
  • 百度WEBUPLOADER大文件(视频)上传解决方案
    前端:vue2,vue3,vue-cli,html5,webuploader后端:asp.net,jsp,springboot,php,数据库:MySQL,Oracle,SQLServer,达梦,人大金仓,国产数据库功能:超大文件上传,文件和文件夹批量上传,断点续传,加密上传,视频上传技术:百度webuploader,分块,切片,断点续传,秒传,MD5验证,纯JS实现,支持第三方......