jsonp(对,通俗易懂)

zhangzhaowei 2018-07-09 原文

jsonp(对,通俗易懂)

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 终于写完了,我就是有点懒

posted on 2018-07-09 19:36 loocer 阅读() 评论() 编辑 收藏

 

 
版权声明:本文为zhangzhaowei原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/zhangzhaowei/p/9285656.html

jsonp(对,通俗易懂)的更多相关文章

  1. 解决 React Native Android:app:validateSigningRelease FAILED 错误

    RN 运行的时候报这个错这咋办: ​ 这是找不到 测试的 秘钥了  ​debug.keystore 看app目 […]...

  2. 适用于nodercms的打包构建脚本

    适用于nodercms的打包构建脚本 Posted on 2019-03-28 16:22 Bowen Hua […]...

  3. js 记一次带时间的表单提交报400错误

    写一个功能的时候,表单里不填时间提交的时候,数据就正常传到后台了,一填上时间就报400错误,看了后台时间的处理 […]...

  4. 以for循环的方式了解var与let的区别

    var是ES5定义变量的一种声明方式。 let是ES6定义变量的一种声明方式—可定义局部变量,即定 […]...

  5. React事件杂记及源码分析

    React事件杂记及源码分析   前提 最近通过阅读React官方文档的事件模块,发现了其主要提到了以下三个点 […]...

  6. vue实现开发地图应用(使用高德地图 JS API ) – 一颗狗尾巴草

    vue实现开发地图应用(使用高德地图 JS API ) 高德开放平台教程:https://lbs.amap.c […]...

  7. 事件循环 EventLoop(Promise,setTimeOut,async/await执行顺序)

    什么是事件循环?想要了解什么是事件循环就要从js的工作原理开始说起: JS主要的特点就是单线程,所谓单线程就是 […]...

  8. 利用js判断文件是否为utf-8编码

    常规方案 使用FileReader以utf-8格式读取文件,根据文件内容是否包含乱码字符�,来判断文件是否为u […]...

随机推荐

  1. 3、多线程相关面试小题

    一、什么是进程? 软件需要安装操作系统之上,软件安装之后,需要找到核心的启动文件来运行软件。 运行软件:就是让 […]...

  2. 从ASP.NET Core 3.0 preview 特性,了解CLR的Garbage Collection

    前言 在阅读这篇文章:Announcing Net Core 3 Preview3的时候,我看到了这样一个特性 […]...

  3. 【译】理解Rust中的闭包

    原文标题:Understanding Closures in Rust 原文链接:https://medium […]...

  4. screen命令

    原文链接 screen其实就是linux虚拟终端,你可以用它创建很多虚拟终端,每个终端可以创建1~10个窗口, […]...

  5. windows下cmd中命令操作

    windows下cmd中命令:   cls清空 上下箭头进行命令历史命令切换 ——&# […]...

  6. 专利检索常用的十八个网站

    专利检索常用的十八个网站 mjiansun 2020-04-03 14:42:21  259  收藏 分类专栏 […]...

  7. 前端实现打印

    基于window.print实现的最基本的打印   之前开发项目中使用的打印的插件是easy-print,这个 […]...

  8. Chromium的无锁线程模型C++代码示例

    Chormium的无锁线程模型,有效的规避了常规多线程常有的卡顿、死锁、崩溃等问题。 引言 作者:程序员bin […]...

展开目录

目录导航