jsonp學習筆記

2021-09-12 14:41:26 字數 847 閱讀 6533

什麼是jsonp

jsonp是一種基於json文字格式的使用模式,為了解決json的跨域問題,

結構相當於在json字串外拼接乙個方法名稱,以括號包含該json字串

例如:test()

為什麼使用jsonp

js在跨域訪問資料時會失效,因為違反了js的同源策略

所謂同源策略是,只要系統的訪問位址、網域名稱、埠有乙個不同,就是違反同源策略

怎麼使用jsonp,呼叫邏輯是什麼

底層呼叫邏輯:

js的script標籤的src屬性可以訪問跨域資料,將跨域資料接收到本地,利用資料結構中的方法名稱,匹配本地同名函式,獲取的元資料是jsonp,將其中包含的json轉給了這個函式的引數進行解析。

利用jquery獲取jsonp,利用jquery可以直接得到想要的json資料,同樣是上面的jsonp:

$("#getjsonpbyjquery").click(function ()

})})

這裡針對ajax與jsonp的異同再做一些補充說明:

1、ajax和jsonp這兩種技術在呼叫方式上」看起來」很像,目的也一樣,都是請求乙個url,然後把伺服器返回的資料進行處理,因此jquery和ext等框架都把jsonp作為ajax的一種形式進行了封裝。

2、但ajax和jsonp其實本質上是不同的東西。ajax的核心是通過xmlhttprequest獲取非本頁內容,而jsonp的核心則是動態新增

test01 的頁面

test02 的頁面

test.json 的頁面

JSONP個人心得筆記

目錄 jsonp個人心得筆記 1.學習jsonp掌握三個問題 2.什麼是jsonp 2.1定義 2.2樣子 3.為什麼使用jsonp 3.1使用jsonp的場景 3.2js的跨域非同源 3.3為什麼使用jsonp 4.jsonp的呼叫原理 5.jquery的封裝 基於json字串格式的一種使用模式,...

Django學習 jsonp跨域請求

我們通過ajax進行跨域請求的時候,請求傳送過去,但是在接受返回資料的時候瀏覽器會進行攔截。這是由於瀏覽器存在同源策略機制,同源策略阻止從乙個源載入的文件或指令碼獲取或設定另乙個源載入的文件的屬性。比如我們在python中使用requests模組對乙個天氣api進行請求,然後傳給前端,這個是可以的 ...

JSONP簡單例子

jsonp的原理很簡單,主要利用了html中所有有src的屬性的標籤可以跨域的特點,利用script的src進行get請求,後端輸出一段js 的字串在script中便會執行。當然後端輸出普通的json字串是不行的,後台應當輸出fn json 樣式的字串 fn代表要呼叫的js方法 json代表要處理的...