跨域問題的出現(xiàn)是由于瀏覽器為了防止csrf攻擊薄声,避免惡意攻擊而采取的同源策略限制渐裂,也就是當一個頁面使用XMLHTTPRequest對象發(fā)送HTTP請求時(XHR),必須保證當前頁面和請求的資源是同源的(即協(xié)議秒梅,域名和端口號要完全一致庶橱,否則瀏覽器就會阻止跨域請求返回額的數(shù)據)王财。
如何解決跨域的問題的呢徽级, 有以下三種方案
1舌剂,代理的方案济锄,將請求資源的操作通過一層代理,然后取回數(shù)據霍转,再從代理層把數(shù)據返給瀏覽器拟淮,由于代理層和瀏覽器是同源的,這樣就解決了跨域的問題(通常試用于node層)
2谴忧,放開服務端跨域限制很泊,通過添加response的header的方法(參考header('Access-Control-Allow-Origin:*'); //允許所有來源訪問? header('Access-Control-Allow-Method:POST,GET'); // 允許訪問的方式)
3,JSONP的方式沾谓,JSONP方式的原理是將返回數(shù)據以資源的方式放在<script>標簽里面返回委造,由于返回的不是JSON數(shù)據,就沒有跨域的限制了均驶,類似對頁面添加的js引用昏兆,這樣就解決了跨域的問題。但需要在服務端拼接結構妇穴,違背了restful的原則爬虱。