Json学习-json使用教程

举报
亿人安全 发表于 2023/05/31 22:03:59 2023/05/31
【摘要】 JSONP 教程本章节我们将向大家介绍 JSONP 的知识。Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。为什么我们从不同的域(网站)访问数据需要一个特殊的技术(JSONP )呢?这是因为同源策略。同源策略,它是由Netscape提出的一个著名的安全策略,现在所有支持JavaScript 的浏览器都...

JSONP 教程

本章节我们将向大家介绍 JSONP 的知识。

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

为什么我们从不同的域(网站)访问数据需要一个特殊的技术(JSONP )呢?这是因为同源策略。

同源策略,它是由Netscape提出的一个著名的安全策略,现在所有支持JavaScript 的浏览器都会使用这个策略。

JSONP 应用

1. 服务端JSONP格式数据

如客户想访问 : http://www.runoob.com/try/ajax/jsonp.php?jsonp=callbackFunction。

假设客户期望返回JSON数据:["customername1","customername2"]。

真正返回到客户端的数据显示为: callbackFunction(["customername1","customername2"])。

服务端文件jsonp.php代码为:


  1. <?php

  2. header('Content-type: application/json');

  3. //获取回调函数名

  4. $jsoncallback = htmlspecialchars($_REQUEST ['jsoncallback']);

  5. //json数据

  6. $json_data = '["customername1","customername2"]';

  7. //输出jsonp格式的数据

  8. echo $jsoncallback . "(" . $json_data . ")";

  9. ?>

2. 客户端实现 callbackFunction 函数


  1. <script type="text/javascript">

  2. function callbackFunction(result, methodName)

  3. {

  4. var html = '<ul>';

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

  6. {

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

  8. }

  9. html += '</ul>';

  10. document.getElementById('divCustomers').innerHTML = html;

  11. }

  12. </script>

页面展示

<div id="divCustomers"></div>

客户端页面完整代码


  1. <!DOCTYPE html>

  2. <html>

  3. <head>

  4. <meta charset="utf-8">

  5. <title>JSONP 实例</title>

  6. </head>

  7. <body>

  8. <div id="divCustomers"></div>

  9. <script type="text/javascript">

  10. function callbackFunction(result, methodName)

  11. {

  12. var html = '<ul>';

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

  14. {

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

  16. }

  17. html += '</ul>';

  18. document.getElementById('divCustomers').innerHTML = html;

  19. }

  20. </script>

  21. <script type="text/javascript" src="http://www.runoob.com/try/ajax/jsonp.php?jsoncallback=callbackFunction"></script>

  22. </body>

  23. </html>

jQuery 使用 JSONP

以上代码可以使用 jQuery 代码实例:


  1. <!DOCTYPE html>

  2. <html>

  3. <head>

  4. <meta charset="utf-8">

  5. <title>JSONP 实例</title>

  6. <script src="http://cdn.static.runoob.com/libs/jquery/1.8.3/jquery.js"></script>

  7. </head>

  8. <body>

  9. <div id="divCustomers"></div>

  10. <script>

  11. $.getJSON("http://www.runoob.com/try/ajax/jsonp.php?jsoncallback=?", function(data) {



  12. var html = '<ul>';

  13. for(var i = 0; i < data.length; i++)

  14. {

  15. html += '<li>' + data[i] + '</li>';

  16. }

  17. html += '</ul>';



  18. $('#divCustomers').html(html);

  19. });

  20. </script>

  21. </body>

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。