使用 JSONP 的跨源请求:一个简单的 jQuery、PHP 示例
在处理同源策略施加的限制时, JSONP 成为跨域请求的有效解决方案。这种技术允许您从外部源检索数据,同时避免潜在的安全漏洞。
jQuery 和 JSONP
要使用 jQuery 发起 JSONP 请求,您可以使用$.getJSON 方法。此方法会自动触发 JSONP 请求,如以下代码片段所示:
$.getJSON('http://www.example.com/jsonp.php', {firstname: 'Jeff'}, function(res) { alert('Your name is ' + res.fullname); });
PHP 和 JSONP
在服务器端,PHP 作为端点用于处理 JSONP 请求。 $.getJSON 方法将回调参数附加到 URL 查询字符串,该字符串随后由 PHP 脚本处理。该脚本返回封装在回调函数中的响应,如下所示:
<?php $fname = $_GET['firstname']; if ($fname == 'Jeff') { echo $_GET['callback'] . '(' . "{'fullname': 'Jeff Hansen'}" . ')'; } ?>
请注意在构建响应时使用 $_GET['callback'] 和正确的 JSONP 语法。这确保了客户端提供的回调函数用于封装响应。
处理 HTML 结果
虽然提供的示例主要说明了 JSON 数据的交换,值得注意的是,JSONP 还可以用于传输 HTML 内容。为了适应这种情况,只需确保 PHP 脚本将 HTML 包装在回调函数中并将其作为响应发送即可。然后,客户端 JavaScript 可以根据需要解析并呈现 HTML。
以上是jQuery 和 PHP 如何使用 JSONP 促进跨源请求?的详细内容。更多信息请关注PHP中文网其他相关文章!