Vueプロジェクトではjsonpを使ってクロスドメインデータを取り込む方法です。


  • ダウンロードjsonp npm install json
  • はjsフォルダの下にjson.jsを追加してjson()
  • をカプセル化します。
    どのように一つのjsonを包装しますか?
    ダウンロードしたjsopnの中で、jsop(url、options、calback)これは元のjsonp方法の中のパラメーターです。
    ダウンロードを導入したjsonimport originJsonp from 'jsonp';自分の定義をエクスポートするjsop関数
    //このJsonp関数は私達が自分で定義したもので、上のorigginJsonとは同じではなく、orighJsonは直接引用できる方法です。彼女が一番        
    ついにPromiseのオブジェクトに戻りました。
    
     export default function jsonp(url, data, option){
      return new Promise((resolve,reject)=>{
      //  originJsonp()     
       originJsonp(url,option,(err,data)=>{ //callback       
        if(!err){
        resolve(data)
        }ese{
        reject(err)
        }
       })
      })
    }
    キャプチャされたデータのURLにはしばしばパラメータが入ってきますが、これらのパラメータは対象の書式です。しかし、オリジンJsonpメソッドに導入されたパラメータはurlの後ろにつなぎ合わせられていますので、対象のフォーマットではなく、オブジェクトのフォーマットのパラメータをurlの後ろにつなぎ合わせて新しいURLを構成する必要があります。
    このような一つのurl:(  https://www.baidu.com/s?ie=ut
    ここのパラメータはdata:{
    
    ie:utf-8,
           rsv_bp:1
          }
    export function param(data){
    let urlData='';
    for(let key in data){
     let value = data[k] !== undefined ? data[k] : '' ;//    data    
     // data    
     if(vaule){
     urlData += ・'&'${k}=${encodeURIComponent(value)}・;//encodeURIComponent           (encodeURIComponent()        url  
     }
    }
     return urlData ? urlData.substring(1):''; //url.substring(1)    ,     url         '?‘;         ‘&'    ,   URL         【 ?  &】
    }
    関数paramを関数jsonpに参照します。
    
    export default function jsonp(url, data, option) {
      return new Promise((resolve,reject)=>{
       //        
       // URL    ,      URL     “?”,       param(data)  “&”,     param(data)  “?”
       url = url.indexOf('?')<0 ? '?':'&' + param(data);
       originJsonp(url,option,(err,data)=>{
        //   url         ,      
        if(!err){
         resolve(data) //    
        }else{
         reject(err) //  
        }
       })
      })
     }
    締め括りをつける
    以上は小编が绍介したVueプロジェクトの中でjsonpを使ってドメインを跨ぐデータをつかむ方法です。