JSONP解决跨域问题

article/2025/9/30 18:12:55

一、什么是同源

概念:如果两个页面的协议、域名和端口都相同,则这两个页面具有相同的源。

 二、什么是同源策略

概念:是浏览器提供的一个安全功能。

 三、什么是跨域

概念:同源指的是两个URL的协议、域名、端口号一致,反之则是跨域。

出现跨域的根本原因:浏览器的同源策略不允许非同源的URL之间进行资源的交互。

例如下面的情况:

四、浏览器如何对跨域请求进行拦截

 五、如何实现跨域数据请求

方式有JSONP和CORS两种,JSONP兼容性好,但是只支持GET数据请求,不支持POST请求;CORS不兼容某些低版本的浏览器但是它支持GET和POST请求。下面主要讲JSONP的内容。

六、JSONP的概念

 JSONP的实现原理:由于浏览器收同源策略的限制,网页无法通过Ajax请求非同源的接口数据,但是script标签不受浏览器同源策略的影响,可以通过src属性请求非同源js脚本。简而言之,JSONP的实现原理就是通过<script>标签的src属性,请求跨域的数据接口,并通过函数调用的形式,接收跨域接口响应回来的数据。

七、剖析JSONP的实现原理

我们先来看这个代码:

<body><script>function success(data) {console.log(data);}</script><script>var data = {name: 'sy',age: 18};success(data);</script>
</body>

输出结果为:

说明所有的script标签都是共享内容的。

八、实现一个简单的JSONP数据请求

<body><script>function success(data) {console.log('JSONP响应回来的数据');console.log(data);}</script>//这里返回的是一个函数调用<script src="http://www.liulongbin.top:3006/api/jsonp?callback=success&name=sy&age=18"></script>
</body>

输出结果为:

 九、JSONP的缺陷及注意事项

缺点:JSONP只支持GET数据请求,不支持POST请求

注意事项:JSONP和Ajax之间没有任何关系,不能把JSONP请求数据的方式叫做Ajax,因为JSONP没有用到XMLHttpRequest这个对象。

十、Jquery中的JSONP函数

(一)采用$.ajax()函数发起JSONP请求

 代码如下:

<body><script>$(function() {$.ajax({url: 'http://www.liulongbin.top:3006/api/jsonp?name=sy&age=18',dataType: 'jsonp',success: function(res) {console.log(res);}})})</script>
</body>

 输出结果:

 自定义参数和回调函数名称

 

看下面的代码:

<body><script>function sy() {console.log('heiheihie');}</script><script>$(function() {$.ajax({url: 'http://www.liulongbin.top:3006/api/jsonp?name=sy&age=18',dataType: 'jsonp',jsonpCallback: 'sy',success: function(res) {console.log(res);}})})</script>
</body>

 输出结果:

 


http://chatgpt.dhexx.cn/article/LKJ3NPgs.shtml

相关文章

关于Jsonp,你知道多少?

# 一、Jsonp为跨域而生 为什么会出现跨域问题&#xff1f; &#x1f64b;‍♀️出于浏览器的同源策略限制。 什么是源? &#x1f64b;‍♀️源&#xff08;origin&#xff09;就是协议&#xff08;protocol&#xff09;&#xff0c;主机&#xff08;host&#xff09;和端口…

JSONP原理及实现

文章目录 基本原理执行过程优缺点 案例分析前期准备后端代码前端简单实现jQuery中ajax实现封装一个JSONP方法简易版同时多个请求最终版JSONP方法 基本原理 基本原理&#xff1a; 主要就是利用了 script 标签的src没有跨域限制来完成的。 执行过程 前端定义一个解析函数(如: …

什么是 JSONP?

前言 首先我们得先了解JSONP是怎么产生的。 最开始跨域请求数据没有现在方便&#xff0c;Ajax直接请求普通文件存在跨域无权限访问的问题&#xff0c;然后聪明的程序员想出了一套非官方的解决办法&#xff0c;程序员发现凡是带有“src”这个属性的标签都拥有跨域的能力&#x…

jsonp介绍

为什么要知道jsonp&#xff0c;jsonp的作用是什么&#xff1a; Jsonp(JSON with Padding) 是 json 的一种"使用模式"&#xff0c;可以让网页从别的域名&#xff08;网站&#xff09;获取资料&#xff0c;即跨域读取数据。原则上浏览器是不允许请求不同域名的数据的&…

前端跨域jsonp的细节,挡住面试官的连环提问

1.前言 在前端面试中&#xff0c;想必每一个人都会被问到跨域相关的问题&#xff0c;背过八股文的小伙伴肯定对跨域的解决对答如流&#xff0c;常见的跨域解决方案在网上有很多整理&#xff0c;但是如果问到实现的细节&#xff0c;你是否能够手写实现或者深入解读呢&#xff1f…

jsonp 的原理及应用

1. 什么是jsonp jsonp全称json with padding&#xff0c;填充式的json,jsonp是为跨域而生的 2. 那么有哪些标签可以跨域呢 <img src""> //图片 <link href""> //css <script src""> //程序我们可以使用script来帮助我们跨域…

JSONP详解

Jsonp(JSON with Padding) 是 json 的一种”使用模式”&#xff0c;可以让网页从别的域名&#xff08;网站&#xff09;那获取资料&#xff0c;即跨域读取数据。 为什么我们从不同的域&#xff08;网站&#xff09;访问数据需要一个特殊的技术(JSONP )呢&#xff1f;这是因为同…

使用JSONP解决跨域

1.首先需要知道什么是跨域 浏览器从一个域名的网页去请求另一个域名的资源时&#xff0c;域名、端口、协议任一不同&#xff0c;都是跨域 出于浏览器的同源策略限制 同源策略&#xff08;Sameoriginpolicy&#xff09;是一种约定&#xff0c;它是浏览器最核心也最基本的安全功…

虚拟机安装ubuntu全教程

主要流程 - 准备安装包&#xff08;包括ubuntu镜像、虚拟机压缩包、分区助手)安装虚拟机安装ubuntu、安装vmtool&#xff08;解决ubuntu全屏的问题&#xff09; 一、准备安装包 下载地址&#xff1a;http://pan.baidu.com/s/1hr39WGG 密码&#xff1a;tttq 二、安装虚拟机 …

ubuntu服务器ubuntu Server安装教程

记录一次系统安装到拷贝大数据文件的过程。 说在前: 1.系统U盘启动安装软件Rufus&#xff0c;自行百度下载2.下载Ubuntu Server镜像&#xff0c;官方地址即可一、安装 1、选择Ubuntu Server 2、语言选择&#xff0c;默认英语 3、有网络的话选择第一项升级系统&#xff0c;…

ubuntu安装图文教程

作为目前世界上最安全的操作系统&#xff0c;Linux逐渐被大多数人使用&#xff0c;而ubuntu作为Linux分支中最华丽美观的操作系统&#xff0c;有必要有一个好多安装教程 ubuntu系统是一个linux操作系统;ubuntu安装教程的每个版本类似&#xff0c;下面给您带来的是12.04版本的ub…

Ubuntu/Windows 双系统安装教程

前言 由于工作所用的开发环境是linux的&#xff0c;所以决定把自己电脑装一个windows/ubuntu双系统。Ubuntu不同版本的物理机安装流程都是一样的&#xff0c;而且极其简单&#xff0c;不要怕自己没装过把电脑整坏了&#xff0c;大不了连windows一起给它重装了。 双系统安装步…

安装Ubuntu系统详细教程

一. 前言 本篇文章详解介绍一下如何安装Ubuntu系统&#xff0c;笔者在安装的过程中踩过很多坑&#xff0c;重装了很多次&#xff0c;现在把安装过程中遇到的问题也列出来&#xff0c;供大家参考。 二. 准备工作 这个环节很重要&#xff0c;工欲善其事&#xff0c;必先利其器。 …

VMware虚拟机安装Ubuntu(超详细图文教程)

VMware虚拟机安装Ubuntu 1 Ubuntu下载2 打开VMware3 然后就可启动虚拟机4 等待吧5 重启后就完了&#xff0c; 到这就基本结束了6 下面可以调一下软件下载源 1 Ubuntu下载 Ubuntu下载地址&#xff1a;点这里 注&#xff1a;但官网下载比较慢 也可关注公众号Time木回复&#xf…

Ubuntu系统安装教程

1、首先打开VMware&#xff0c;然后点击创建新虚拟机 2、点击完新建虚拟机后&#xff0c;选择稍后安装操作系统&#xff0c;点击下一步 3、选择Linux&#xff0c;版本选择Ubuntu64位&#xff0c;点击下一步 4、虚拟机名称自己取&#xff0c;位置选择一个盘&#xff0c;创建一…

使用VMware安装Ubuntu虚拟机 - 完整教程

【前言】 本教程将演示通过 VMware 安装 Ubuntu &#xff0c;请提前下载好以下文件哦&#xff1a; ① VMware 软件 ② Ubuntu 的 光盘镜像文件&#xff08;.iso&#xff09; 【下载地址】 VMware 官网链接 https://www.vmware.com/ 本教程使用版本&#xff1a;VMware Worksta…

Ubuntu详细安装教程(小白友好型)

鼠标右键 ------>> 以管理员身份运行   2.右键“文件”——>>“新建虚拟机”   选择“自定义”&#xff0c;“下一步”         “下一步”         “稍后安装操作系统”——>>“下一步”         “Linux”——>>“Ubuntu64位”…

ubuntu 21.04安装教程

ubuntu 21.04安装教程 制作启动U盘*&#xff08;虚拟机安装此步省略&#xff09;*U盘刻录工具balenaEtcher 开始安装选择语言选择键盘布局网络设置代理设置源设置源设置为国内源&#xff0c;这里设置为阿里源&#xff1a; 分区设置用户名工具安装安装完成![在这里插入图片描述]…

Ubuntu安装教程【超多图】

大家好&#xff0c;我是坚果&#xff0c;我的公众号“坚果前端”&#xff0c; 文章目录 01前言02虚拟机的安装03Ubuntu镜像的下载04虚拟机硬件配置1.虚拟机安装完毕之后&#xff0c;界面如下图所示&#xff1a;2.在弹出的对话框中选择自定义&#xff0c;然后点击下一步&#x…

Ubuntu20.04安装详细图文教程(双系统)

Ubuntu安装 前言 最近想把自己开发环境换成linux的&#xff0c;查了一下还是ubuntu桌面比较美观并且作为生产系统生态良好&#xff0c;决定使用ubuntu。开始了着手查找安装Ubuntu双系统的方法。安装有三种&#xff1a; 虚拟机安装wubi安装U盘安装 第一种发挥不出硬件本身的…