国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

關(guān)于jQuery.ajax()的jsonp碰上post詳解

2019-11-19 16:12:29
字體:
供稿:網(wǎng)友

前言

以前一直以為當(dāng)$.ajax()的 dataType設(shè)置為jsonp時,其method(請求方法)無論怎么設(shè)置,都會變成get,直到前兩天遇到了一個坑。

下面來一起看看詳細(xì)的介紹:

關(guān)于跨域請求與jsonp

  • 跨域:由于受到同源策略(協(xié)議、域名、端口三者必須全部相同)的影響,ajax請求會受到限制,要突破這種限制,跨域便產(chǎn)生了。跨域的解決方案有多種,這里不展開闡述,只是針對GET請求中的jsonp跨域解決方案做一下說明。
  • jsonp,本質(zhì)上jsonp不是xhr異步請求,就是請求了一個js文件,因此在chrome的network面板中的xhr標(biāo)簽下看不到j(luò)sonp的跨域請求,在js標(biāo)簽下能看到。就是利用script標(biāo)簽中src不受同源策略的限制,前端定義了回調(diào)函數(shù),請求的js腳本中獲取數(shù)據(jù),并執(zhí)行前端的回調(diào)函數(shù),因此前后端需要統(tǒng)一定義下回調(diào)函數(shù)名。
  • $.ajax中jsonp,$.ajax對jsonp進(jìn)行了封裝看起來像是ajax請求。由于jsonp是針對get請求的跨域解決,因此之前的經(jīng)驗告訴我,即使type設(shè)置了post,在jsonp的時候,也會自動轉(zhuǎn)換成get,直到有一天踩了個坑。翻看$.ajax模塊的源碼發(fā)現(xiàn),只有去手動設(shè)置crossDomain為true,或者實際上是跨域,才會設(shè)置為get。否則還是填入的type


結(jié)論:

手動設(shè)置crossDomain為true,或者真的是跨域,才會修改type為GET,否則還是傳入的type參數(shù)

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如有疑問大家可以留言交流,謝謝大家對武林網(wǎng)的支持。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 偃师市| 堆龙德庆县| 宿松县| 昆山市| 崇礼县| 钟祥市| 同心县| 永顺县| 通渭县| 河北省| 雷州市| 微山县| 宁明县| 同德县| 秦皇岛市| 宣武区| 虎林市| 盘山县| 哈尔滨市| 台北县| 马关县| 双柏县| 孝昌县| 达尔| 正阳县| 乌审旗| 澄迈县| 建德市| 山东| 沈丘县| 金阳县| 谢通门县| 东宁县| 无极县| 澳门| 马龙县| 德阳市| 梓潼县| 天柱县| 北海市| 子洲县|