JSONP解决跨域问题

前言

本文主要讲解跨域问题以及解决跨域问题的方案之一JSONP的实现方式。

什么是跨域

全称为Cross-Origin Resource Sharing,简单来说请求的客户端和服务端的端口、域名、协议中的任意一个有不一样的地方在URL的展示中,那么就会出现这个跨域问题。

它产生的原因是因为浏览器实现了一种同源策略,同源策略是为了保护信息安全而设立的安全机制,它限制了一个源从另一个源获取或发送数据资源进行交互操作,为了防止恶意网站窃取用户信息。

JSONP

JSONP它是一种解决跨域的协议,它是利用script标签没有跨域限制的特性,通过在服务器上注册一个函数,同时在本地中调用这个全局函数并且将这个数据作为参数再传递回服务器,就实现了一个跨域的效果。

JSONP解决跨域具体流程

  • js创建script标签
  • let script=document.createElement('script)
  • 全局挂载一个window.jsonp方法
  • 把这个标签添加到body标签的尾部
  • document.body.append(script)
  • 在服务端中先从请求url中解析出参数,然后进行业务处理,然后把返回数据返回。返回时需要设置请求头为text/javaScript
  • 服务端返回一段字符串,在前端接收到的是一个可执行的js代码
    比如:
    前端/客户端定义一个函数
handle(data){
console.log(data)
}

前端发送GET请求到服务器:

let script=document.createElement('script')
script.src="http://xxx.com/data?callback=handle"
document.body.appendChild(script)

后端/服务器接收到请求后,把返回数据拼接成字符串:

handle({name:"123"})

注:JSONP只支持GET请求,不支持POST请求。JSONP容易受到XSS攻击。所以一般跨域问题都是通过服务器端解决。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/180519.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

不同路径 II(力扣LeetCode)动态规划

不同路径 II 题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。 现在考虑网格中有障碍物。…

Vue3自定义指令(directive)

Vue2自定义指令(directive) Vue3自定义指令(directive)

【Android Jetpack】Hilt 依赖注入框架

文章目录 依赖注入DaggerHiltKoin添加依赖项Hilt常用注解的含义HiltAndroidAppAndroidEntryPointInjectModuleInstallInProvidesEntryPoint Hilt组件生命周期和作用域如何使用 Hilt 进行依赖注入 依赖注入 依赖注入是一种软件设计模式,它允许客户端从外部源获取其依…

智能井盖传感器怎么监测井盖倾斜?

城市道路上的井盖是常见的安全隐患,由于井盖质量不过关、安装不合理等原因导致的井盖位移或倾斜等事故,每年都处于不断增加的状态。为了减少此类案件的发生并维护社会治安,国家相关部门已经制定了多项政策法规对井盖进行统一监管。鼓励各个城…

有哪些不错的golang开源项目?

前言 下面是github上的golang项目,适合练手,可以自己选择一些项目去练习,整理不易,希望能多多点赞收藏一下!废话少说,我们直接进入正题>>> 先推荐几个教程性质的项目(用于新手学习、…

C Primer Plus讲解前置说明

说明 本来是准备接着写下去,写着就发现思路整理的有点杂乱无章。果然是“想一千次,不如去做一次”。所以这次准备基于《C Primer Plus》第六版给大家分享一下,也是自己梳理的一个过程。有关C语言的书很多,我选这本也恰巧是因为以前…

Django二转Day02

http #1 http 是什么#2 http特点#3 请求协议详情 -请求首行---》请求方式,请求地址,请求协议版本 -请求头---》key:value形式 -referer:上一次访问的地址 -user-agenet:客户端类型 -name&#x…

面试题:汉诺塔问题 · 递归

你好,我是安然无虞。 文章目录 汉诺塔问题问题描述解题思路代码详解 汉诺塔问题 问题描述 解题思路 这道题的名字还是很响的,基本上都能看出来使用递归解题,但是具体怎么实现还是需要细细想一想。 我们一步一步来,请看&#xff…

2023-11-28 LeetCode每日一题(设计前中后队列)

2023-11-28每日一题 一、题目编号 1760.设计前中后队列二、题目链接 点击跳转到题目位置 三、题目描述 请你设计一个队列,支持在前,中,后三个位置的 push 和 pop 操作。 请你完成 FrontMiddleBack 类: FrontMiddleBack() 初…

Java中的Lambda表达式和相关函数式接口

知识模块: 一.Lambda表达式概述: 二.Lambda表达式使用前提 三.Lambda表达式一.完整格式二.简略格式 四.Lanbda表达式原理 五.Java中已有的函数式接口a.Supplierb.Consumer接口c.Functiond.Predicate一.Lambda表达式概述:面向对象编程思想关注…

微服务实战系列之Cache

前言 欢迎来到Cache(缓存)的世界! 自从世界第一台计算机诞生之日起,人们对效率的渴望逐步增强。从CPU到存储,从芯片到内存,一批又一批的先驱以一种孜孜不倦的“工匠”精神,为计算机运行效率的提…

揭开 BFC 的神秘面纱:前端开发必知必会

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

用Sublime编写Lua脚本

大家好,我是阿赵。   现在很多手游项目使用lua作为热更新的代码脚本,我一直很喜欢用Sublime来写lua程序。喜欢使用它的原因是它的轻量化,因为我经常要同时打开多个项目,Unity和VisualStudio这些软件都比较占用电脑的性能&#x…

Python武器库开发-前端篇之JavaScript基础语法(三十五)

前端篇之JavaScript基础语法(三十五) JavaScript字符串及常用方法 JavaScript中的字符串是一个包含零个或多个字符的序列,可以包含字母、数字、符号和空格等。以下是一些JavaScript中常用的字符串方法: length:返回字符串的长度&#xff0…

Nodejs+vue基于微信小程序的高校餐厅食品留样管理系统uniapp

任何系统都要遵循系统设计的基本流程,本系统也不例外,同样需要经过市场调研,需求分析,概要设计,详细设计,编码,测试这些步骤,基于nodejs小程序技术设计并实现了小程序。采用B/S结构,…

父进程隐藏——ConsoleApplication903项目

首先我发现用calc来做进程隐藏实验是失败的,父进程一直都是svhost.exe 那么我用我自己生成的cs木马beacon903.exe试试 试试explorer.exe 再试试cmd.exe 可以看到成功变成cmd.exe 可以看到我们可以通过这种方式虚假父进程 以上我们是直接获得的pid,那…

微信小程序+中草药分类+爬虫+keras

目录 1 介绍2 数据爬虫3 模型训练和验证3.1 模型训练3.2 导入一张图片进行验证 4 后台flask部署5 微信小程序 1 介绍 本项目使用深度学习模型,训练5种中药材数据集,然后将其集成到微信小程序,通过微信小程序拍照,将图片传输给后端…

MIT_线性代数笔记:第 08 讲 求解 Ax=b:可解性与结构

目录 可解的条件 Solvability conditions on b特解 A particular solution通解 Complete solution与零空间进行线性组合 Combined with nullspace 秩 Rank 可解的条件 Solvability conditions on b 矩阵 A 的第三行为第一行和第二行的加和,因此 Axb 中 b 的第 3 个分…

git常规使用方法,常规命令

Git是一种分布式版本控制系统,它可以记录软件的历史版本,并提供了多人协作开发、版本回退等功能。以下是Git的基本使用方法: 安装Git:下载安装包并进行安装,安装完成后在命令行中输入 git --version 进行验证。 初始化…

海翔云平台 getylist_login.do SQL 注入漏洞复现

0x01 产品简介 海翔云平台一站式整体解决方案提供商,业务涵盖 批发、连锁、零售行业ERP解决方案、wms仓储解决方案、电商、外勤、移动终端(PDA、APP、小程序)解决方案。 0x02 漏洞概述 海翔云平台getylist_login.do接口处存在SQL注入漏洞&am…