Vueプロジェクトではjsonpを使ってクロスドメインデータを取り込む方法です。
どのように一つのjsonを包装しますか?
ダウンロードしたjsopnの中で、jsop(url、options、calback)これは元のjsonp方法の中のパラメーターです。
ダウンロードを導入したjson
import 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を使ってドメインを跨ぐデータをつかむ方法です。