RN 一次fetch請求問題解決

fetch網(wǎng)絡(luò)請求

  1. 問題:服務(wù)端返回沒有對應(yīng)的參數(shù)
  2. 搜索:《React-Native系列》31、 Fetch發(fā)送POST請求的坑與解決方案
  3. 處理:按照上面使用FormData,失敗
  static login(username,password,successCallback,failCallback){
      let params = new FormData();
      params.append("loginNo",username);
      params.append("password",md5(password));
      HttpUtils.post("http://.../login",params,successCallback,failCallback);
  }
  1. 處理:使用postman測試,運(yùn)行正常,但是設(shè)置了Content-Type=application/json
  2. 處理:header設(shè)置content-type,新問題
  3. 問題:multipart != application/json
  4. 搜索:https://stackoverflow.com/questions/39351026/multipart-application-json-fetch-post-error-on-android-react-native
  5. 處理:修改'Content-Type': 'multipart/form-data',問題
  6. 問題:服務(wù)端返回沒有對應(yīng)的參數(shù)(同問題1)
  7. 處理:在回去用postman測試,發(fā)現(xiàn)使用form-data不行,用raw可行

image.png

11.處理:不適用FormData,改為JSON來傳遞參數(shù),成功,最終代碼如下

  static login(username,password,successCallback,failCallback){
      let params = {
          "loginNo":username,
          "password":md5(password)
      };
      HttpUtils.post("http://.../login",params,successCallback,failCallback);
  }

  static post(url,params,successCallback,failCallback){
    fetch(url,{
      method:'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      body:JSON.stringify(params)
    })
      .then((response)=>response.json())
      .then((responseData)=>{
        successCallback(responseData);
      })
      .catch(function(err){
        failCallback(err)
      });
  }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容