jsonp(代码片段)

dbf- dbf-     2022-12-17     761

关键词:

JSONP(JSON with Padding) 是 JSON 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。

JSONP本质

由于浏览器的同源策略,会阻止Ajax请求,但是不会阻止<script src=""></script>,因此就可以通过<script src=""></script>的方式发送请求。

注意:JSONP只能发送GET请求

JSONP数据格式

为了配合通过<script>发送请求,服务器端返回的数据应为JSONP格式:

callbackFunction(数据)

因为通过<script src=""></script>发送请求就等于将服务器返回的数据直接放入了<script></script>代码块中,所以服务器需要返回JS格式的数据,一般返回一个回调函数,然后将要发送给浏览器的数据当作参数传给函数,并且浏览器需要先定义一个函数供服务器调用。

示例:

.html:

<body>
<input type="button" id="get-JSONP" value="get" />
</body>
<script src="/static/jQuery3.4.1.js"></script>
<script src="/static/get_jsonp.js"></script>

get_jsonp.js:

$('#get-JSONP').click(function () 
    var tag = document.createElement('script');
    tag.src = 'http://www.jxntv.cn/data/jmd-jxtv2.html?callback=list&_=1454376870403';
    document.head.appendChild(tag);
    document.head.removeChild(tag);
);

function list(arg)
    console.log(arg);

通过这个示例就可以清晰地看出JSONP的原理

通过jQuery发送请求

示例

get_jsonp.js:

$('#u-get').click(function () 
    $.ajax(
        url: 'http://www.jxntv.cn/data/jmd-jxtv2.html?callback=list&_=1454376870403',
        type: 'GET',
        dataType: 'jsonp',
        jsonp: 'callback',
        jsonpCallback: 'list'
    )
function list(arg)
    console.log(arg);

请求类型可以使用POST,但是其实内部仍然将POST转换为GET

javascript原生实现jsonp(代码片段)

查看详情

[jsonp]关于jsonp的几个点(代码片段)

关于JSONP今天学习到了JSONP,关于JSONP的定义和用法在阮一峰阮老师的博客里讲解得很清楚了,这里只是记录一些关于JSONP的点。回调函数的命名在阮老师的博客中举的例子是回调函数命名为foo,在实际使用环境中回调函数一般是... 查看详情

jsonp(代码片段)

JSONP(JSONwithPadding)是JSON的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。JSONP本质由于浏览器的同源策略,会阻止Ajax请求,但是不会阻止<scriptsrc=""></script>,因此就可以通... 查看详情

r用r解析jsonp(代码片段)

查看详情

ajax解决跨域--jsonp原理(代码片段)

1.解决跨域–JSONP1.1JSONP是什么JSONP(JSONwithPadding),是一个非官方的跨域解决方案,纯粹凭借程序员的聪明才智开发出来,只支持get请求。1.2JSONP怎么工作的?在网页有一些标签天生具有跨域能力,比如:imglin... 查看详情

htmljquery,json:使用jsonp的基本jquery示例(代码片段)

查看详情

jsonp原理详解(代码片段)

先说说JSONP是怎么产生的:1、一个众所周知的问题,ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面、动态页面、web服务、WCF,只要是跨域请求,一律不准。2、不过我们又发现,web页面上调用js文件时则不... 查看详情

jsonp原理及实现(代码片段)

JSONP原理及实现1概述2优点3缺点4实现1概述JSONP是是一种跨域通信的手段,它可以让网页从别的域名(网站)中获取数据,即跨域读取数据,兼容性好,但是只能处理GET请求。它的原理是利用script标签的src属... 查看详情

html进行jsonp调用并将其保存在sessionstorage中(代码片段)

查看详情

ajax解决跨域--jquery发送jsonp请求(代码片段)

1.jQuery发送jsonp请求需求在"点击发送jsonp请求"后,将服务器返回的响应体渲染到窗口中。ajaxDemo.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname= 查看详情

xss结合jsonp获取网站访客社交账号信息(代码片段)

...入2个外部JavaScript文件。第一个是jQuery库,第二个是jsonp代码。在实际渗透中,如果该网站存在存储型XSS漏洞,我们就可以将 查看详情

封装一个简单的jsonp(代码片段)

简单来说通过script标签的src属性,src属性不仅仅可以写JS文件,可以请求任意文件。jsonp是通过JS这一特点实现,并添加async(异步属性)。当我们用src请求一下后台文件(例如:php)。1.如果我们在PHP文件中返回来的是vardata=1一条... 查看详情

php带有jquerygetjson(回调)的jsonp公共api(mysql)(代码片段)

查看详情

jsonp原理及其简单封装(代码片段)

什么是JSONP1、一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面、动态网页、web服务、WCF,只要是跨域请求,一律不准;2、不过我们又发现,Web页面上调用js文件时则不受是否跨域的影... 查看详情

前端面试--ajax和jsonp跨域(代码片段)

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metanam 查看详情

jsonp跨域详解+模拟百度搜索(代码片段)

JSONP跨域一、什么是JSONP二、JSONP跨域请求三、模拟百度搜索四、JSONP缺点一、什么是JSONP        JSONP是JSONwithpadding(填充式JSON或参数式JSON)的简写,是应用JSON的一种新方法,在后来的Web服务中非常流行,J... 查看详情

ajax解决跨域--原生jsonp实践(代码片段)

1.原生jsonp实践需求:验证用户名是否存在,如果用户名不存在,则在失去焦点的时候边框变红。ajaxDemo.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname 查看详情

ajax基础4--什么是跨域以及如何解决跨域(代码片段)

同源策略和jsonp同源策略(⭐⭐⭐)什么是同源什么是同源策略跨域(⭐⭐⭐)什么是跨域浏览器对跨域请求的拦截如何实现跨域数据请求`JSONP`什么是`JSONP`(⭐⭐⭐)`JSONP`的实现原理(⭐⭐⭐)自己实现一个简单的`JSO... 查看详情