解决PHP无法直接通过$_POST获取react-native post提交的表单的问题



  • 不得不吐槽一下RN很多东西不完善,初学者容易踩到各种坑,本文介绍如何post方式请求一个url

    • 首先在下面的官方文档里介绍了如何请求一个url
      http://reactnative.cn/docs/0.23/network.html
      文章只介绍了get方式直接访问一个url,并没有写清楚post的时候改怎么改

    • 然后楼主找了下面这篇博客,他讲的近乎完美,但是也挖了个坑,我完全照搬,一运行失败了
      http://www.qichengzx.com/2015/11/06/React-Native-Fetch.html

    • 究其原因,就是header里的Content-Type的问题,上面那边博客根本就没有把headers放上去,该不会是到处抄来的吧。

    • 好了不管了,由于按'Content-Type': 'application/json',后端打印$_POST是空的,必须要
      $_POST = json_decode(file_get_contents('php://input'), true);转一下才有值,沿着这个问题
      然后楼主再找了一篇博客
      http://www.nowamagic.net/academy/detail/12220520

    • 原来 我们需要的'Content-Type':是'application/x-www-form-urlencoded',ok,替换上去,再用第二篇博客里的toQueryString()转一下body,运行,ok~完美!


  • administrators

    传统的服务器端都是默认按application/x-www-form-urlencoded来处理的,也就是普通的post form,需要的数据形式是body: "key1=value1&key2=value2"
    RN沿用的都是标准技术栈,所以不会额外讲解http方面的知识


登录后回复