什么是jsonp?
具体的定义自己去google
jsonp 其实就是动态生成js, 用标签的src属性加载到本地执行
上代码
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <h1 id="title">标题</h1> <p id="body">内容</p> <input type="button" value="更改" onclick="addScript()" /> <script type="text/javascript"> function $(id) { return document.getElementById(id); } function ChangeContent(object) { $('title').innerHTML = object.title; $('body').innerHTML = object.body; } function addScript() { var newScript = document.createElement('script'); newScript.src = 'index.php?callback=ChangeContent'; document.body.appendChild(newScript); } </script> </body> </html>
index.php
<?php sleep(1); //这一行只是为了有些延迟效果, 可有可无 echo sprintf($_GET['callback'] . "(" . json_encode([ 'title' => '测试', 'body' => '这是内容' ]). ")");
如上所示, 其实就是在服务端用传过来的callback包裹一下代码, 跟json没什么太大关系, 跟ajax更是半毛钱没有, jquery把jsonp放在$.ajax中纯属误导人
没错,就是这么简单
浙公网安备 33010602011771号