位置: 编程技术 - 正文
推荐整理分享详解React Native 采用Fetch方式发送跨域POST请求(详解杭州亚运会会徽和口号),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:详解增发万亿国债细节,详解增发万亿国债细节,详解中国女足出线形势,详解增发万亿国债细节,详解杭州亚运会会徽和口号,详解16型人格,详解中国女足出线形势,详解杭州亚运会会徽和口号,内容如对您有帮助,希望把文章链接给更多的朋友!
Fetch以后是趋势,势必要取代传统的Ajax,而且RN框架支持Fetch。下面仅做了一个跨域请求的例子,在本域请求是一样的,而且更简单一些。客户端环境用的是RN写的一个页面,也可以用浏览器的console控制台模拟。后端服务用的是NodeJs express框架。
1)Fetch请求
1、mode属性控制是否允许跨域。same-origin(同源请求)、no-cors(默认)和cros(允许跨域请求),第一种跨域求情会报error,第二种可以请求其他域的脚本、图片和其他资源,但是不能访问response里面的属性,第三种可以获取第三方数据,前提是所访问的服务允许跨域访问。否则,会出现如下错误:
2、Fetch请求后台时,返回时一个Promise对象。对象支持解析返回数据的方法有:arrayBuffer()、blob()、formData()、json()、text()。
3、Body传入参数,注意!注意!注意!重要的事情说三次,只能传啊a=1&b=2...这种参数形式,不可传对象{a:1,b:2,...},用JSON.stringify({a:1,b:2,...})也不行。在jquery中,传入对象框架会自动封装成formData的形式,fetch没有这个功能。
4、使用时请注意浏览器版本,低版本不支持此对象。RN是可以用的
2)Nodejs express框架开启允许跨域请求:
3)Nodejs express框架开启处理POST数据功能,默认POST请求的参数是在请求体里面,用res.query是获取不到的,为{};需要使用res.body获取,前提是要在express框架里面开启body解析功能,否则显示undefined。
4)支持jsonp方式跨域访问,开启跨域访问后用传统的jsonp方式请求时,会报错。因为jsonp请求需要返回一个callback包裹的数据,否则解析出错。此处有一个坑,用$.ajax({method:'POST',dataType:'jsonp'})方式请求时,依然发送的是GET请求。
5)完整代码:
1、RN前端
2、NodeJs
标签: 详解杭州亚运会会徽和口号
本文链接地址:https://www.jiuchutong.com/biancheng/369807.html 转载请保留说明!上一篇:bootstrap 通过加减按钮实现输入框组功能(bootstrap怎么引用)
下一篇:详解React 在服务端渲染的实现(react service worker)
友情链接: 武汉网站建设