跨域是指 在不一樣的域之間進行數據傳輸,只要協議、域名、端口有任何一個不一樣,都被看成是不一樣的域。
解決跨域的方法:
1.JSONP: 利用script的src 能夠在不一樣域之間請求數據的特色,向某一地址發請求, 須要後臺返回一個可以執行的js文件,html
如上圖,這裏利用jquery.ajax的jsonp 後臺返回的是一個函數的調用,函數的聲明是ajax中的success
咱們也能夠本身寫一個script 利用上面的方式 node
後臺返回的是一個 data的函數調用, 聲明在前臺頁面中. 這些都須要後臺的配合,由於返回的數據前面 須要加一下函數名,必須和後臺約定好
jquery
2.window.name來進行跨域:window對象有個name屬性,該屬性有個特徵:即在一個窗口(window)的生命週期內,窗口載入的全部的頁面都是共享一個window.name的,每一個頁面對window.name都有讀寫的權限,window.name是持久存在一個窗口載入過的全部頁面中的,並不會因新頁面的載入而進行重置。
web
3.設置代理:在web服務器上封裝第三方服務,而後給本身同源的web頁面調用
我用node搭建了一個代理服務器,在這裏使用了http-proxy-middleware 這個中間件 很是好用。 只須要設置請求而後就直接可使用,如圖ajax
只須要在頁面中發送請求,便可用代理服務器代理到請求的服務器,拿到數據。
json
4. 還有一種postMessage ,一種HTML5新增方法,如今瀏覽器及IE8+支持,簡單易用高大上。可是 我不是很喜歡用iframe。也不知道問什麼,天生的排斥。 因此在這裏推薦大神寫的http://www.cnblogs.com/dolphinX/p/3464056.html 跨域