文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

什么是JSONP

2023-10-29 13:59

关注

一、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、优点

2、缺点

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯