dso407787736 2019-02-14 11:21
浏览 190
已采纳

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 2019-02-14 11:36
    关注

    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);
        });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?