5種處理js跨域問題方法彙總

2021-07-26 05:57:10 字數 1497 閱讀 2229

本文**(

前兩天碰到乙個跨域問題的處理,使用jsonp可以解決。(

最近再整理了一下:

1.jsonp。

ajax請求,datatype為jsonp。這種形式需要請求在服務端調整為返回callback([json-object])的形式。如果服務端返回的是普通json物件。那麼除錯的時候,在chrome瀏覽器的控制台會報"uncaught syntaxerror: unexpected token"錯誤;在firefox瀏覽器的控制台會報"syntaxerror: missing ; before statement"錯誤。

2.iframe跨域。

頁面中增加乙個iframe元素,在需要呼叫get請求的時候,將iframe的src設定為get請求的url即可發起get請求的呼叫。

複製**

**如下:

var url = "

";$("#iframe").attr("src", url);//跨域,使用iframe

iframe方式強於jsonp,除了可以處理http請求,還能夠跨域實現js呼叫。

3.script元素的src屬性處理

iframe、img、style、script等元素的src屬性可以直接向不同域請求資源,jsonp正是利用script標籤跨域請求資源的簡單實現,所以這個和jsonp本質一樣,同樣需要服務端請求返回callback...形式。

複製**

**如下:

var url="

";var script = document.createelement('script');

script.setattribute('src', url);

4.在伺服器使用get處理。

對於業務上沒有硬性要求在前端處理的,可以在服務端做一次封裝,再服務端發起呼叫,這樣就可以解決跨域的問題。然後再根據請求是發出就完,還是需要獲取返回值,來決定**使用同步或者非同步模式。

複製**

**如下:

request.begingetresponse(null,null);//非同步

5.flash跨域

過於尖端了==,再研究

總結:以上5種方法就是常見的解決js跨域問題的處理方法了,最後一種比較高階,等我研究清楚了再補上吧。

js跨域問題

什麼是跨域?概念 只要協議 網域名稱 埠有任何乙個不同,都被當作是不同的域。1.document.domain 跨子域 這個是範圍最小的乙個。比如a.example.com 中寫了乙個iframe,其中src example.com 但是因為是不同域的就無法寫js獲取iframe中的document...

js跨域問題

報錯資訊 火狐上的錯誤 permission denied to access property document window.parent.document find database name val databasename 谷歌上的錯誤 uncaught securityerror blo...

js跨域問題

跨域問題,網上資料很多,但是太多複製貼上,還錯誤百出,這裡我總得說一下吧 第二個方法就是cros跨域,服務端要設定響應頭如下header access control allow credentials true header access control allow origin request....