返回顶部
首页 > 资讯 > 精选 >什么是JSONP
  • 825
分享到

什么是JSONP

JSONP 2023-10-29 13:10:50 825人浏览 泡泡鱼
摘要

一、JSONP意思 jsONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于 server1、example、com 的网页无法与不是 server1

一、JSONP意思

jsONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于 server1、example、com 的网页无法与不是 server1、example、com的服务器沟通,而 html 的<script> 元素是一个例外。利用 <script>元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 资料,而这种使用模式就是所谓的 JSONP。用 JSONP 抓到的资料并不是 JSON,而是任意的javascript,用 JavaScript 直译器执行而不是用 JSON 解析器解析。

二、JSONP使用

1、在客户端调用提供JSONP支持的URL Service,获取JSONP格式数据。

比如客户想访问Http://www、yiwuku、com/myService、aspx?jsonp=callbackFunction

假设客户期望返回JSON数据:[“customername1″,”customername2”]

那么真正返回到客户端的Script Tags: callbackFunction([“customername1″,”customername2″])

可能的调用方式:

<script type=”text/javascript” src=”http://www、yiwuku、com/myService、aspx?jsonp=callbackFunction”></script>

2、在客户端写callbackFunction函数的实现

<script type=”text/javascript”>

function CustomerLoaded(result,methodName)

{

    var html='<ul>’;

    for(var i=0;i<result、length;i++)

    {

        html+='<li>’+result[i]+'</li>’;

    }

    html+='</ul>’;

    document、getElementById(‘divCustomers’)、innerHTML=html;

}

</script>

3、页面展示

<div id=”divCustomers”></div>

4、最终Page Code

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1、0 Strict//EN” “http://www、w3、org/TR/xhtml1/DTD/xhtml1-strict、dtd”>

<html xmlns=”http://www、w3、org/1999/xhtml”>

<head>

    <title>Top Customers with Callback</title>

</head>

<body>

    <div id=”divCustomers”>

    </div>

    <script type=”text/javascript”>

        function onCustomerLoaded(result, methodName) {

            var html = ‘<ul>’;

            for (var i = 0; i < result、length; i++) {

                html += ‘<li>’ + result[i] + ‘</li>’;

            }

            html += ‘</ul>’;

            document、getElementById(‘divCustomers’)、innerHTML = html;

        }

    </script>

    <script type=”text/javascript” src=”http://www、yiwuku、com/myService、aspx?jsonp=onCustomerLoaded”></script>

</body>

</html>

三、JSONP的优缺点

1、优点

  • 它不像XMLHttpRequest对象实现的ajax请求那样受到同源策略的限制,JSONP可以跨越同源策略;
  • 它的兼容性更好,在更加古老的浏览器中都可以运行,不需要XMLHttpRequest或ActiveX的支持
  • 在请求完毕后可以通过调用callback的方式回传结果。将回调方法的权限给了调用方。这个就相当于将controller层和view层终于分开了。我提供的jsonp服务只提供纯服务的数据,至于提供服务以 后的页面渲染和后续view操作都由调用者来自己定义就好了。如果有两个页面需要渲染同一份数据,你们只需要有不同的渲染逻辑就可以了,逻辑都可以使用同 一个jsonp服务。

2、缺点

  • 它只支持GET请求而不支持POST等其它类型的HTTP请求。
  • 它只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题。
  • jsonp在调用失败的时候不会返回各种HTTP状态码。
  • 缺点是安全性。万一假如提供jsonp的服务存在页面注入漏洞,即它返回的javascript的内容被人控制的。那么结果是什么?所有调用这个 jsonp的网站都会存在漏洞。于是无法把危险控制在一个域名下…所以在使用jsonp的时候必须要保证使用的jsonp服务必须是安全可信的。

--结束END--

本文标题: 什么是JSONP

本文链接: https://lsjlt.com/news/521205.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 什么是JSONP
    一、JSONP意思 JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于 server1、example、com 的网页无法与不是 server1...
    99+
    2023-10-29
    JSONP
  • JSONP的原理是什么
    JSONP的原理是什么?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。什么是JSONP首先提一下JSON这个概念,JSON是一种轻量级的数据传输格式,被广泛应用于当前Web应用中...
    99+
    2023-06-14
  • JSONP跨域的原理是什么
    这篇文章给大家介绍JSONP跨域的原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。JSONP是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过ja...
    99+
    2024-04-02
  • Ajax和jsonp怎么用
    这篇文章主要介绍了Ajax和jsonp怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言:ajax和jsonp可以与后台通信,获取数据...
    99+
    2024-04-02
  • JSONP跨域请求怎么实现
    这篇文章主要介绍JSONP跨域请求怎么实现,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是跨域:1、域名不同2、域名相同端口不同js出于对安全考虑不支持跨域请求。我们可以使用JS...
    99+
    2024-04-02
  • Node.js中怎么使用JSONP进行交互
    本篇内容主要讲解“Node.js中怎么使用JSONP进行交互”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js中怎么使用JSONP进行交互”吧! 在...
    99+
    2024-04-02
  • JSONP怎么解决Ajax跨域访问问题
    这篇文章主要介绍“JSONP怎么解决Ajax跨域访问问题”,在日常操作中,相信很多人在JSONP怎么解决Ajax跨域访问问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JS...
    99+
    2024-04-02
  • AJAX跨域请求JSONP怎么获取JSON数据
    这篇文章将为大家详细讲解有关AJAX跨域请求JSONP怎么获取JSON数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Asynchronous JavaScript a...
    99+
    2024-04-02
  • jsonp和CORS跨域请求问题怎么解决
    这篇文章主要讲解了“jsonp和CORS跨域请求问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jsonp和CORS跨域请求问题怎么解决”吧!JSONPjsonp 的原理很简单,利...
    99+
    2023-06-02
  • 怎么从Flickr JSONP API中加载最近的图片
    本文小编为大家详细介绍“怎么从Flickr JSONP API中加载最近的图片”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么从Flickr JSONP API中加载最近的图片”文章能帮助大家解决疑惑,...
    99+
    2024-04-02
  • Ajax中怎么利用jsonp方式跨域获取数据
    这期内容当中小编将会给大家带来有关Ajax中怎么利用jsonp方式跨域获取数据,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。<!DOCTYPE html&...
    99+
    2024-04-02
  • Java中的跨域请求怎么利用Ajax jsonp 实现
    这篇文章将为大家详细讲解有关Java中的跨域请求怎么利用Ajax jsonp 实现,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、什么是JSONP一般来说位于 server1.exampl...
    99+
    2023-05-31
    java jsonp ajax
  • Spring之什么是ObjectFactory?什么是ObjectProvider?
    目录ObjectFactory接口定义跟FactoryBean的区别及联系ObjectProvider接口定义接口分析ObjectProvider解决的问题总结在Spring的学习过...
    99+
    2023-01-01
    Spring ObjectFactory Spring ObjectProvider ObjectFactory ObjectProvider
  • Windows Vista是什么?什么是Windows Vista
      我身边很多朋友对Windows Vista是什么一点都不知道,经常来问我,所以今天我就像大家详细介绍Windows Vista这个操作系统,如有不足,还请大家见谅,好了,进入正题:   Windows Vista是微...
    99+
    2023-06-05
    Windows Vista
  • window.setinterval是什么 其作用是什么
    window.setInterval是一个JavaScript方法,它允许您周期性地执行指定的函数或代码块。该方法以指定的时间间隔(以毫秒为单位)触发指定的函数。window.setInterval的语法如下:javascriptsetIn...
    99+
    2023-07-12
  • java中什么是类,什么是对象
    类就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。对象就是一个真实世界中的实体,对象与实体是一一对应关系的,意思就是现实世界的每一个...
    99+
    2020-06-27
    java入门 java 对象
  • 什么是DHCP?什么是DHCP服务器
    DHCP是Dynamic Host Configuration Protocol(动态主机配置协议)的缩写,它是一种网络协议,常用于...
    99+
    2023-09-05
    DHCP服务器
  • colspan_colspan是什么意思?作用是什么
    colspan是HTML中的一个属性,用于指定一个单元格横跨的列数。作用是将一个单元格合并为多个列,使得该单元格占据更大的水平空间。...
    99+
    2023-08-22
    作用
  • c#什么是委托什么是事件
    委托是一种指向方法的引用类型,用于实现松散耦合,而事件是一种特殊委托,用于事件处理。委托可将调用方法的职责转移到接收方,提高代码可重用性。事件允许对象向订阅者通知事件发生,订阅者可响应事...
    99+
    2024-04-04
    c#
  • c++中什么是类,什么是对象
    c++kquote>类在 c++ 中代表对象集合的模板,定义了对象的属性(数据成员)和行为(成员函数)。对象是类的实例,拥有类中的所有数据成员和成员函数,由类创建,并使用与类相同的...
    99+
    2024-05-08
    c++
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作