首页 >后端开发 >php教程 >JSONP如何解决跨源数据检索问题?

JSONP如何解决跨源数据检索问题?

Patricia Arquette
Patricia Arquette原创
2024-12-07 20:21:14279浏览

How Does JSONP Solve Cross-Origin Data Retrieval Problems?

JSONP:简化跨源数据检索

处理跨源 Web 请求时,同源策略可能会带来挑战。 JSONP(带有 Padding 的 JSON)作为解决此问题的解决方案应运而生。以下是如何实现基本 jQuery、PHP 和 JSONP 请求以从不同域检索数据的分步说明:

jQuery 请求

$.getJSON('http://www.write-about-property.com/jsonp.php?callback=?', { firstname: 'Jeff' }, function(res) {
  alert('Your name is ' + res.fullname);
});

PHP 响应

<?php
  $fname = $_GET['firstname'];
  if ($fname == 'Jeff') {
    echo $_GET['callback'] . '(' . "{'fullname' : 'Jeff Hansen'}" . ')';
  }
?>

密钥修改:

  • ?callback=?: 在 JSONP 中,服务器在响应中包含回调函数。 ?回调=?使浏览器能够为服务器提供动态生成的回调函数。
  • $_GET['callback'] 。 '(': 服务器使用 JavaScript 调用浏览器提供的回调函数。
  • res.fullname: JavaScript 代码访问服务器返回的 JSON 并显示“全名”值。

HTML 中响应

是的,您可以在结果中存储 HTML,然后 JavaScript 代码将根据需要处理 HTML。

示例用法

此示例从位于以下位置的 PHP 脚本检索“Jeff”的全名“http://www.write-about-property.com/jsonp.php”。如果名称与“Jeff”匹配,则返回全名“Jeff Hansen”。

以上是JSONP如何解决跨源数据检索问题?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn