jsonp

Posted 油画家的第一站

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsonp相关的知识,希望对你有一定的参考价值。

1.jsonp是利用script标签可以引入外部资源,并将引入的外部资源作为js代码解析的特性,获取跨域资源
    - 如果外部资源是php文件,那么php文件会自动被服务器解析,解析之后的返回的数据,会作为js执行

 

2. jsonp的封装: 
function jsonp(url,success,data){
    1.解析数据:
    let str = "";
    for(let i in data){
        str += `${i}=${data[i]}&`;
    }
    2.创建script:
    let script = document.createElement("script");
    3.设置地址:
    var d = new Date();
    script.src = url + "?" +str+ "__qft=" + d.getTime();
    4.插入页面:
    document.body.appendChild(script);
    5.利用window在局部作用域声明全局变量:
    window[data[data.columnName]] = function(res){
        success(res);
    }
}
    
3. ajax和jsonp的总结
    - ajax,适合同源请求,或后台明确允许请求的资源
    - jsonp,适合请求跨域资源,但要求,后台使用字符串拼接的形式,执行js中的函数
    - ajax和jsonp不能互换,不能互相替代,各有各的使用场景

以上是关于jsonp的主要内容,如果未能解决你的问题,请参考以下文章

Jsonp 原理

JSONP使用

jsonp实现原理

vue视频学习笔记02

AJAX入门

ajax 跨域请求