dso407787736
dso407787736
2019-02-14 11:21

React Native POST数据到API无法正常工作

已采纳

I get Notice: Undefined index response when i post data to php API using FormData in React Native. But when i hard code parameters in the php file i am able to get results.

I have tried using JSON.stringify from React docs. I get same problem. On the server side i tried suggested file_get_contents('php://input') which just returns null.

  var data = new FormData();
  data.append({
    latitude: '55555',
    longitude: '9999',
  });

fetch('http://localhost/someapi', {
    method:'POST',
    headers:{
        'Accept':'application/json',
        'Content-Type': 'multipart/form-data',
        'Content-length': data.length
    },
    body: data
    })
    .then((response)=>response.text())
    .then((response)=>{
        console.log('  Show response');
        console.log(response);
    })
    .catch((err)=>{
        console.warn(err);
    });

I am using response.text() so i can display the error. otherwise response.json() gives me Unexpected token < because it returns html

Here is my PHP server code

 $lat =  $_POST['latitude'];
 $lng =  $_POST['longitude'];
 echo json_encode($lat);

I also tried

 $json = file_get_contents('php://input');
 $obj = json_decode($json, TRUE);
 echo $obj;
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • douwendu2460 douwendu2460 2年前

    you are passing 'multipart/form-data' header , so you have to pass formdata to body instead of JSON.stringify

     var formData = new FormData();
     formData.append('latitude', 55555);
     formData.append('longitude', 9999);
    
    fetch('http://localhost/someapi', {
        method:'POST',
        headers:{
            'Accept':'application/json',
            'Content-Type': 'multipart/form-data'
        },
        body: formData
        })
        .then((response)=>{
            console.log('Response ==>',response);
        })
        .catch((err)=>{
            console.warn(err);
        });
    
    点赞 评论 复制链接分享