如何實現js跨域呼叫

2021-06-19 01:56:52 字數 581 閱讀 3907

最近需要提供乙個介面給外部門使用,沒遇到過降域的問題。比較通用的方法,可以使用jsonp方式進行呼叫。下面有一篇文章講得不錯,把原理講得很清晰,基本原理:就是利用js的src標籤,src可以越過同源策略的限制,巧妙實現跨域訪問。

另外:這裡要指出的一點就是,使用jsonp方式,無法使用post方式提交表單,根本原因就是因為他是通過script方式去載入的。

給其他部門寫了個cgi,早上把服務端進行了下改造,想使用jsonp方式進行跨域,結果發現jasonp方式無法使用post方式訪問,又花了兩個小時,改造成了使用iframe + document降域的方式進行訪問。

具體方案如下:

可以通過在同域下面,新建乙個頁面,作為**頁面,通過**頁面來繞過跨域。

1、新建乙個頁面:

在該頁面下:

2、外部呼叫,使用iframe的src屬性,去載入1中的**頁面,通過這個屬性來繞過js同源訪問策略。

中,新增如下html**片段:

總結:實施過程當時,因為把協議沒對上,所以總是跨域訪問不成功。之前看過不少理論上的東西,但做起來,又是另一種滋味。

還是那句老話:紙上得來終覺淺 絕知此事要躬行!!!

jsonp實現跨域呼叫

jsonp服務端需要返回的格式 callback 其實就是加個資料的方法呼叫封裝。注意,對於jsonp在return 物件需要為null,否則返回的資料後面會多個,需要返回的資料可以直接printwrite輸出。服務端 示例 suppresswarnings unchecked json seria...

如何實現跨域?

1.最經典的跨域方案jsonp jsonp本質上是乙個hack,它利用標籤不受同源策略限制的特性進行跨域操作。jsonp優點 實現簡單 相容性非常好 jsonp的缺點 只支援get請求 因為標籤只能get 有安全性問題,容易遭受xss攻擊 需要服務端配合jsonp進行一定程度的改造 jsonp的實現...

如何實現跨域

跨域的前提條件 所有的跨域請求都必須經過資訊提供方允許 如果未經允許即可獲取,那是瀏覽器同源策略出現漏洞 解決 1.src跨域 jsonp方式 2.cors方式 3.伺服器 cors 對比 jsonp 都能解決 ajax直接請求普通檔案存在跨域無許可權訪問的問題 jsonp只能實現get請求,而co...