《React-Native系列》31、 Fetch发送POST请求的坑与解决方案
来源:互联网 发布:ktv伴奏软件 编辑:程序博客网 时间:2024/05/16 19:48
我们在请求http接口时候,通常都会使用get和post的方式,针对表单提交这类的请求,我们通常采用post方式。
那么在RN中的Fetch API中post提交有哪些坑呢?让我们撸起来。
我们先来说说Server端的代码,通常我们从Request获取参数时的方法为:
我们下面说的判断能不能获取参数,就是按照这种方法来获取。
在 RN中,通常我们会怎么写代码呢?
方案一(不推荐):
此时我们发现在Server端无法获取到name和password的值。
换成GET试试,将params追加到url后,发现ok。那这是什么情况呢?下面讲解。
好,不行,我们就再换一种方法试试呗。
方案二(不推荐):
我们直接将params封装成一个JSON对象,然后在body里将JSON对象转成字符串传过去,发现然并卵,Server端还是获取不到值。
好,我们不兜圈子了,直接说明原因。
其实,方案一和方案二都是直接在body里传递了一个字符串,在Server端获取body的方式如下:
通过这种方法我们可以获取到传入的字符串。
既然能获取到字符串,那么我们也可以拿到我们传入的值了,可以转JSON、或者按&切割字符串,只不过这种解决方案好像有点挫啊!!!
也许你会问在jquery中,我们就是按照方案一这种方式做的啊,怎么好使呢?
答:因为参数 "name=admin&password=admin123” 在jquery中,传入对象框架会自动封装成formData的形式,fetch没有这个功能。
终极方案(推荐使用):
既然fetch不会自动转FormData,那我们自己new一个FormData,直接传给body。
在FormData中也可以传递字节流实现上传图片的功能。参考:http://blog.csdn.net/codetomylaw/article/details/52446786
这样我们就可以在Server端获取到name和password的值了。
那么在RN中的Fetch API中post提交有哪些坑呢?让我们撸起来。
我们先来说说Server端的代码,通常我们从Request获取参数时的方法为:
我们下面说的判断能不能获取参数,就是按照这种方法来获取。
在 RN中,通常我们会怎么写代码呢?
方案一(不推荐):
此时我们发现在Server端无法获取到name和password的值。
换成GET试试,将params追加到url后,发现ok。那这是什么情况呢?下面讲解。
好,不行,我们就再换一种方法试试呗。
方案二(不推荐):
我们直接将params封装成一个JSON对象,然后在body里将JSON对象转成字符串传过去,发现然并卵,Server端还是获取不到值。
好,我们不兜圈子了,直接说明原因。
其实,方案一和方案二都是直接在body里传递了一个字符串,在Server端获取body的方式如下:
通过这种方法我们可以获取到传入的字符串。
既然能获取到字符串,那么我们也可以拿到我们传入的值了,可以转JSON、或者按&切割字符串,只不过这种解决方案好像有点挫啊!!!
也许你会问在jquery中,我们就是按照方案一这种方式做的啊,怎么好使呢?
答:因为参数 "name=admin&password=admin123” 在jquery中,传入对象框架会自动封装成formData的形式,fetch没有这个功能。
终极方案(推荐使用):
既然fetch不会自动转FormData,那我们自己new一个FormData,直接传给body。
在FormData中也可以传递字节流实现上传图片的功能。参考:http://blog.csdn.net/codetomylaw/article/details/52446786
这样我们就可以在Server端获取到name和password的值了。
0 0
- 《React-Native系列》31、 Fetch发送POST请求的坑与解决方案
- 《React-Native系列》31、 Fetch发送POST请求的坑与解决方案
- React Native 采用Fetch方式发送跨域POST请求
- React Native 采用Fetch方式发送跨域POST请求
- React-Native Fetch方法发送网络请求
- 转载: React Native 采用Fetch方式发送跨域POST请求
- react-native网络请求Fetch中遇到的坑
- React 采用Fetch方式发送跨域POST请求
- React-native fetch请求网络
- React Native Fetch网络请求
- React native fetch 遇到的坑
- React-Native Fetch网络请求的简单封装
- 添加布尔量的React Native fetch网络请求库。
- react-native(Fetch网络请求数据)
- React Native 之 网络请求 fetch
- React Native网络请求fetch简单封装
- React Native 之 网络请求 fetch
- React Native -21.React Native Fetch网络请求
- Oracle创建唯一索引遇到的问题(ORA-01452: 无法 CREATE UNIQUE INDEX; 找到重复的关键字)
- 《React-Native系列》29、 RN组件之WebView
- JavaEE程序员职业规划
- 《Reverse Engineering for Beginners》 - 第1章 代码模式 - 笔记(1.14)
- 《React-Native系列》30、 RN组件间通信
- 《React-Native系列》31、 Fetch发送POST请求的坑与解决方案
- 6、安装git,一台电脑使用两个git账号
- Leetcode Maximum Product Subarray
- 连接远程服务
- 各种流的使用步骤
- PAT基础编程 5-5 表格输出 (5分)
- 分享8款最新超酷HTML5/CSS3特效及源码
- vs2008出现链接错误:fatal error LNK1000: Internal error during IncrBuildImage
- 《React-Native系列》32、 基于Fetch封装HTTPUtil工具类