什麼是跨域?如何解決跨域問題?

一、定義:php

 

跨域,指的是瀏覽器不能執行其餘網站的腳本。它是由瀏覽器的同源策略形成的,是瀏覽器施加的安全限制。html

那麼問題來了,什麼是同源策略呢?
 
同源策略: 域名,協議,端口相同。
  同一瀏覽器的兩個tab頁中分別打開來百度和谷歌的頁面
    當瀏覽器的百度tab頁執行一個腳本的時候會檢查這個腳本是屬於哪一個頁面的( 即檢查是否同源,只有和百度同源的腳本纔會被執行)
  若是非同源,那麼在請求數據時,瀏覽器會在控制檯中報一個異常,提示拒絕訪問。
    同源策略是瀏覽器的行爲,是爲了保護本地數據不被JavaScript代碼獲取回來的數據污染,所以攔截的是客戶端發出的請求回來的數據接收
  即請求發送了,服務器響應了,可是沒法被瀏覽器接收。

 

二、例子:跨域

 

http://www.taobao.com/index.html 調用 http://www.taobao.com/server.php (同源)瀏覽器

http://www.taobao.com/index.html 調用 http://www.tencent.com/server.php (taobao/tencent  跨域)主域名不一樣安全

http://www.taobao.com/index.html 調用 http://zzz.taobao.com/server.php (www/zzz  跨域)子域名不一樣服務器

http://www.taobao.com:8080/index.html 調用 http://www.taobao.com:8088/server.php (8080/8088,跨域)端口不一樣網站

http://www.123.com/index.html 調用 https://www.123.com/server.php (協議不一樣:http/https,跨域)spa

請注意:localhost和127.0.0.1雖然都指向本機,但也屬於跨域。代理

 

三、解決辦法:server

 

一、JSONP

  只支持GET請求,不支持POST請求。

二、代理

  代理模式從後臺繞過瀏覽器端

相關文章
相關標籤/搜索