美文网首页
RN 一次fetch请求问题解决

RN 一次fetch请求问题解决

作者: tesla1984 | 来源:发表于2017-08-10 17:31 被阅读0次

fetch网络请求

  1. 问题:服务端返回没有对应的参数
  2. 搜索:《React-Native系列》31、 Fetch发送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测试,运行正常,但是设置了Content-Type=application/json
  2. 处理:header设置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. 问题:服务端返回没有对应的参数(同问题1)
  7. 处理:在回去用postman测试,发现使用form-data不行,用raw可行
image.png
11.处理:不适用FormData,改为JSON来传递参数,成功,最终代码如下
  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)
      });
  }

相关文章

网友评论

      本文标题:RN 一次fetch请求问题解决

      本文链接:https://www.haomeiwen.com/subject/wrctrxtx.html