jsonp 是啥玩意儿呢 ? 你猜!
此感叹号意味着以下内容要说正事儿了!!!!!
由于浏览器为了安全限制(他要怎样他说了算, 此处不扯远了): 只能允许来自同服务器, 同域名的同端口号下请求数据(同源), 是的 jsonp 就是为了不受你限制而生的!
..
.
.
. 老子实在不想写了 , 但是看别人写的太鸡巴啰嗦了, 借别人代码说两句, 就一句, 你可能就懂了
.
.
- <!DOCTYPE html>
- <html>
- <head>
- <title>GoJSONP</title>
- </head>
- <body>
- <script type="text/javascript">
- function jsonhandle(data){
- alert("age:" + data.age + "name:" + data.name);
- }
- </script>
- <script type="text/javascript" src="jquery-1.8.3.min.js">
- </script>
- <script type="text/javascript">
- $(document).ready(function(){
- $.ajax({
- type : "get",
- async: false,
- url : "http://www.practice-zhao.com/student.php?id=1",
- type: "json",
- success : function(data) {
- jsonhandle(data);
- }
- });
- });
- </script>
- </body>
- </html>
- <!DOCTYPE html>
- <html>
- <head>
- <title>GoJSONP</title>
- </head>
- <body>
- <script type="text/javascript">
- function jsonhandle(data){
- alert("age:" + data.age + "name:" + data.name);
- }
- </script>
- <script type="text/javascript" src="jquery-1.8.3.min.js">
- </script>
- <script type="text/javascript">
- $(document).ready(function(){
- var url = "http://www.practice-zhao.com/student.php?id=1&callback=jsonhandle";
- var obj = $('<script><\/script>');
- obj.attr("src",url);
- $("body").append(obj);
- });
- </script>
- </body>
- </html>
http://www.practice-zhao.com/student.php?id=1&callback=jsonhandle 此地址是一个 php 的输出 getInfo({"username":"张三"})
代码估计你们也看得懂, 重点!! 重点来了!!!!!! 所谓跨域, 就是数据共享, 接口请求做限制, 但是没有对图片, 文本, 文件等在是否同一来源 (同服务器, 同域名的同端口号) 做限制, 比如 cdn(此处有人白眼), 所以在 script 标签的 src 其实是个 get 请求, 这个请求可以是一个 js 文件也可以是一个 js 代码! 总之它不是一个被限制跨域的接口请求! 说白了就是去拿到 js 代码, 想要传的数据整合在这串代码里了(呵呵, 早期的 web 端推送就是这样的原理, push 一段代码过来)
mmmp 终于写完了, 我就是有点懒
来源: http://www.bubuko.com/infodetail-2678660.html