日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

跨域访问-JSONP

發布時間:2023/12/9 javascript 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 跨域访问-JSONP 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JSONP即JSON with Padding。由于同源策略的限制,XmlHttpRequest只允許請求當前源(域名、協議、端口)的資源。如果要進行跨域請求,我們可以通過使用 html的script標記來進行跨域請求,并在響應中返回要執行的script代碼,其中可以直接使用JSON傳遞javascript對象。這種跨域的通訊方式稱為JSONP。

?

JSONP的優點是:它不像XMLHttpRequest對象實現的Ajax請求那樣受到同源策略的限制;它的兼容性更好,在更加古老的瀏覽器中都可以運行,不需要XMLHttpRequest或ActiveX的支持;并且在請求完畢后可以通過調用callback的方式回傳結果。

JSONP的缺點則是:它只支持GET請求而不支持POST等其它類型的HTTP請求;它只支持跨域HTTP請求這種情況,不能解決不同域的兩個頁面之間如何進行JavaScript調用的問題。

?

JSONP的好處就是能夠很好的解決跨域請求的問題,但是也有一些不足之處:

  • 請求的狀態不夠豐富,我們只能偵聽請求成功時的狀態,如果請求失敗,我們無法通過一個狀態碼知曉,所以如果請求失敗的話,沒有任何反饋給用戶,可能會造成用戶的困惑。

  • 由于script標簽不受同源的限制,同時也造成了一些安全性的問題
    使用遠端網站的 script 標簽會讓遠端網站得以注入任何的內容至網站里。如果遠端的網站有 JavaScript 注入漏洞,原來的網站也會受到影響。
    現在有一個正在進行計劃在定義所謂的 JSON-P 嚴格安全子集,使瀏覽器可以對 MIME 類別是“application/json-p”請求做強制處理。如果回應不能被解析為嚴格的 JSON-P,瀏覽器可以丟出一個錯誤或忽略整個回應。

比較一下json與jsonp格式的區別:

json格式:
{"message":"獲取成功","state":"1","result":{"name":"工作組1","id":1,"description":"11"} }
jsonp格式:
callback({"message":"獲取成功","state":"1","result":{"name":"工作組1","id":1,"description":"11"} })

看出來區別了吧,在url中callback傳到后臺的參數是神馬callback就是神馬,jsonp比json外面有多了一層,callback()。這樣就知道怎么處理它了。于是修改后臺代碼。

?

其他資料:

http://kb.cnblogs.com/page/139725/

http://www.cnblogs.com/sunxucool/p/3433992.html

轉載于:https://www.cnblogs.com/tianma3798/p/5091984.html

總結

以上是生活随笔為你收集整理的跨域访问-JSONP的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。