不要再問我跨域的問題了

export default {

mounted () {

window.addEventListener('message', (e) => {

// 這裡一定要對來源做校驗

if (e.origin === 'http://localhost:9099') {

// http://localhost:9099發來的信息

console.log(e.data)

// e.source可以是回信的對象,其實就是http://localhost:9099窗口對象(window)的引用

// e.origin可以作為targetOrigin

e.source.postMessage(`我是[http://crossdomain.com:9099],我知道了兄弟,這就是你想知道的結果:${document.getElementById('app') ? '有id為app的Dom' : '沒有id為app的Dom'}`, e.origin);

}

})

}

}

結果可以看到:

不要再問我跨域的問題了

2.document.domain

這種方式只適合主域名相同,但子域名不同的iframe跨域。

比如主域名是http://crossdomain.com:9099,子域名是http://child.crossdomain.com:9099,這種情況下給兩個頁面指定一下document.domain即document.domain = crossdomain.com就可以訪問各自的window對象了。

3.canvas操作圖片的跨域問題

這個應該是一個比較冷門的跨域問題,我就不再班門弄斧了,主要解決canvas圖片getImageData,toDataURL跨域問題。

最後,希望看完這篇文章之後,再有人問跨域的問題,你可以嘴角微微上揚,冷笑一聲:“不要再問我跨域的問題了。”


分享到:


相關文章: