0x00 简介
由于浏览器的同源策略,我们想要从别的域获取数据变得困难,需要特殊的技术才能获取
0x01 使用
客户域:client.com
服务器(他域):server.com
如客户想访问 : http://server.com/try/ajax/jsonp.PHP?jsonp=callbackFunction。
假设客户期望返回JSON数据:["customername1","customername2"]。
真正返回到客户端的数据显示为: callbackFunction(["customername1","customername2"])。
<?PHP header(‘Content-type: application/json‘); //获取回调函数名 $jsoncallback = htmlspecialchars($_REQUEST [‘jsoncallback‘]); //json数据 $json_data = ‘["customername1","customername2"]‘; //输出jsonp格式的数据 echo $jsoncallback . "(" . $json_data . ")"; ?>
<!DOCTYPE html> <html> <head> <Meta charset="utf-8"> <title>JSONP 实例</title> </head> <body> <div id="divCustomers"></div> <script type="text/javascript"> function callbackFunction(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.runoob.com/try/ajax/jsonp.PHP?jsoncallback=callbackFunction"></script> </body> </html>
0x02 安全问题
参考资料:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。