最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解React native fetch遇到的坑

 更新時(shí)間:2018年08月30日 09:41:18   作者:meyin  
這篇文章主要介紹了詳解React native fetch遇到的坑,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

最近在自學(xué)react native,學(xué)習(xí)過(guò)程中遇到了不少的坑,下面將針對(duì)登錄這一功能來(lái)詳細(xì)介紹一下以下遇到的兩個(gè)問(wèn)題。

1.在請(qǐng)求數(shù)據(jù)的時(shí)候,一般情況下我們會(huì)直接提交Content-type是json數(shù)據(jù)格式的請(qǐng)求。類似

fetch('https://mywebsite.com/endpoint/', {
 method: 'POST',
 headers: {
  'Accept': 'application/json',
  'Content-Type': 'application/json',
 },
 body: JSON.stringify({
  firstParam: 'yourValue',
  secondParam: 'yourOtherValue',
 })
})

當(dāng)我開(kāi)始請(qǐng)求登錄接口的時(shí)候,發(fā)現(xiàn)上面的請(qǐng)求方法失效了,想了好多辦法都不知道問(wèn)題出在哪里,最后試了下抓包,才發(fā)現(xiàn)原來(lái)請(qǐng)求登錄接口的時(shí)候,content-type是application/x-www-form-urlencode,于是我搜了下這方面的知識(shí)。我們?cè)谔峤槐韱蔚臅r(shí)候,form表單參數(shù)中會(huì)有一個(gè)enctype的參數(shù)。enctype指定了HTTP請(qǐng)求的Content-Type。默認(rèn)情況下,HTML的form表單的enctype=application/x-www-form-urlencoded。application/x-www-form-urlencoded是指表單的提交,并且將提交的數(shù)據(jù)進(jìn)行urlencode。默認(rèn)情況下,我們所有的表單提交都是通過(guò)這種默認(rèn)的方式實(shí)現(xiàn)的。文檔中是有記載的:

fetch('https://mywebsite.com/endpoint/', {
 method: 'POST',
 headers: {
  'Content-Type': 'application/x-www-form-urlencoded',
 },
 body: 'key1=value1&key2=value2'
}

2.登錄成功后如何獲取當(dāng)headers里面的sessionid的問(wèn)題。

 

登錄成功之后,我們可以打印出上面的response,若是需要取出上面的sessionid,我們可以采用下面的方法,寫(xiě)法可能比較low,但是可以達(dá)到目的

//獲取sid
var headers = response.headers.get("set-cookie");
var header = headers.split(";");
var sessionid;
for(var index = 0; index < header.length; index++)
{
  if(header[index].indexOf("JSESSIONID") > -1){
    sessionid = header[index].split("=")[1];
  }
}
//保存
AsyncStorage.setItem('sessionid', sessionid);

3.登錄成功之后,后臺(tái)需要根據(jù)sessionid來(lái)判斷登錄狀態(tài)。當(dāng)請(qǐng)求的接口是必須登錄之后才能獲得數(shù)據(jù)的時(shí)候,就不能用傳統(tǒng)的寫(xiě)法來(lái)請(qǐng)求了。javascript 使用fetch進(jìn)行跨域請(qǐng)求時(shí)默認(rèn)是不帶cookie的,所以會(huì)造成 session失效。那所以在登錄請(qǐng)求的時(shí)候需要加上credentials: ‘include'這個(gè)字段。

fetch(Api.checkLoginSecurity , {
  credentials: 'include',
  method: 'POST',
  headers:{
    'Content-Type': 'application/x-www-form-urlencoded',
  },
  body: 'username='+ this.props.userName + '&password=' + this.userPassword
})

在需要登錄后才能獲取數(shù)據(jù)的接口也需要加上

fetch(url , {
  credentials: 'include',
  method: 'GET',
})

此處還要強(qiáng)調(diào)一下get請(qǐng)求和post請(qǐng)求,經(jīng)別人提醒,發(fā)現(xiàn)雖然他寫(xiě)了個(gè)body= {*},讓我誤以為是用POST方式,其實(shí)body只是參數(shù)的字段,實(shí)際上用的還是GET請(qǐng)求,所以把POST改為GET(默認(rèn)是GET,所以就不需要寫(xiě)method),因?yàn)镚ET無(wú)法在body里傳參,也不需要header,直接把參數(shù)寫(xiě)在URL里,只有POST才是在body里傳參。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • React根據(jù)當(dāng)前頁(yè)面路由進(jìn)行自動(dòng)高亮示例代碼

    React根據(jù)當(dāng)前頁(yè)面路由進(jìn)行自動(dòng)高亮示例代碼

    要根據(jù)當(dāng)前頁(yè)面路由自動(dòng)高亮頂部菜單項(xiàng),可以使用 React Router 的 useLocation 鉤子來(lái)獲取當(dāng)前路徑,并根據(jù)路徑動(dòng)態(tài)設(shè)置菜單項(xiàng)的高亮效果,本文給大家介紹了一個(gè)完整的示例,展示如何根據(jù)當(dāng)前頁(yè)面路由自動(dòng)高亮頂部菜單項(xiàng),需要的朋友可以參考下
    2024-07-07
  • react?hooks?d3實(shí)現(xiàn)企查查股權(quán)穿透圖結(jié)構(gòu)圖效果詳解

    react?hooks?d3實(shí)現(xiàn)企查查股權(quán)穿透圖結(jié)構(gòu)圖效果詳解

    這篇文章主要為大家介紹了react?hooks?d3實(shí)現(xiàn)企查查股權(quán)穿透圖結(jié)構(gòu)圖效果詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • 使用react render props實(shí)現(xiàn)倒計(jì)時(shí)的示例代碼

    使用react render props實(shí)現(xiàn)倒計(jì)時(shí)的示例代碼

    這篇文章主要介紹了使用react render props實(shí)現(xiàn)倒計(jì)時(shí)的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • react路由守衛(wèi)的實(shí)現(xiàn)(路由攔截)

    react路由守衛(wèi)的實(shí)現(xiàn)(路由攔截)

    react不同于vue,通過(guò)在路由里設(shè)置meta元字符實(shí)現(xiàn)路由攔截。本文就詳細(xì)的介紹一下,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • React路由組件傳參的三種方式(params、search、state)

    React路由組件傳參的三種方式(params、search、state)

    本文主要介紹了React路由組件傳參的三種方式,主要包括了params、search、state,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 深入研究React中setState源碼

    深入研究React中setState源碼

    這篇文章主要介紹了深入研究React中setState源碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • React 三大屬性之state的使用詳解

    React 三大屬性之state的使用詳解

    這篇文章主要介紹了React 三大屬性之state的使用詳解,幫助大家更好的理解和學(xué)習(xí)使用React,感興趣的朋友可以了解下
    2021-04-04
  • React重新渲染超詳細(xì)講解

    React重新渲染超詳細(xì)講解

    什么是re-render(重新渲染)?哪些是必要的re-render?哪些是非必要的re-render?如果你對(duì)這些問(wèn)題還不是很明白,那么可以在這篇文章中找到答案
    2022-11-11
  • Iconfont不能上傳如何維護(hù)Icon

    Iconfont不能上傳如何維護(hù)Icon

    這篇文章主要為大家介紹了在Iconfont還是不能上傳,要如何維護(hù)你的Icon,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • react時(shí)間分片實(shí)現(xiàn)流程詳解

    react時(shí)間分片實(shí)現(xiàn)流程詳解

    實(shí)現(xiàn)react時(shí)間分片,主要內(nèi)容包括什么是時(shí)間分片、為什么需要時(shí)間分片、實(shí)現(xiàn)分片開(kāi)啟 - 固定、實(shí)現(xiàn)分片中斷、重啟 - 連續(xù)、分片重啟、實(shí)現(xiàn)延遲執(zhí)行 - 有間隔、時(shí)間分片異步執(zhí)行方案的演進(jìn)、時(shí)間分片簡(jiǎn)單實(shí)現(xiàn)、總結(jié)、基本概念、基礎(chǔ)應(yīng)用、原理機(jī)制和需要注意的事項(xiàng)等
    2022-11-11

最新評(píng)論

云阳县| 上蔡县| 黔西| 米易县| 潜山县| 孟津县| 黄梅县| 上思县| 镇雄县| 凤翔县| 新源县| 庐江县| 分宜县| 军事| 亳州市| 高清| 凤翔县| 麻城市| 延津县| 敦化市| 玉田县| 兴文县| 辉县市| 固原市| 三门峡市| 固安县| 桐乡市| 怀安县| 平利县| 博爱县| 邻水| 鄯善县| 扎鲁特旗| 贵港市| 花莲市| 宁都县| 新宁县| 丹凤县| 五大连池市| 根河市| 安阳县|