美文网首页
vue中的jsonp请求

vue中的jsonp请求

作者: 星球小霸王 | 来源:发表于2018-01-10 15:18 被阅读0次
    对于vue中的jsonp请求,借助第三方的jsonp

    对应的文档 https://www.npmjs.com/package/jsonp

    1.安装jsonp

    cnpm install jsonp --save-dev
    

    2.直接在项目中引入,并封装jsonp请求的函数

     import jsonp from "jsonp"
      /*封装promise的jsonp请求*/
     export  default function getJsonp(url,data,option){
            url+=(url.indexOf("?") < 0 ? "?" : "&") + params(data) 
            return new Promise(function(resolve,reject){
            jsonp(url,option,(err,data)=>{
                if(!err){
                    resolve(data)
                }else{
                    reject(err)
                }
            })
       })
    }
    /*处理参数*/
    function params(data){
        let url='';
        for(let k in data){
            let val = data[k]!==undefined?data[k]:'';
            url+=`&${k}=${encodeURIComponent(val)}`
        }
      return url?url.substring(1):''
    }
    

    3.对于jsonp有三个参数,官方文档这样介绍的

    jsonp(url, opts, fn)
      url (String) url to fetch
      opts (Object), optional
        param (String) name of the query string parameter to specify the callback (defaults to callback)
        //param默认的回调名称为callback  ==>{param:'callback'},此参数为对象,踩过坑,谨记
        timeout (Number) how long after a timeout error is emitted. 0 to disable (defaults to 60000)
        //timeout默认的超时时间为60000毫秒 ===>{timeout:60000}
        prefix (String) prefix for the global callback functions that handle jsonp responses (defaults to __jp)
        //prefix前缀,默认的前缀为__jp ==>{prefix:__jp}
        name (String) name of the global callback functions that handle jsonp responses (defaults to prefix + incremented counter)
         //name指的就是前缀名拼接上一个自增的数字,如__jp0
      fn callback 
         //fn 回调函数
    

    相关文章

      网友评论

          本文标题:vue中的jsonp请求

          本文链接:https://www.haomeiwen.com/subject/greonxtx.html