2016-11-23 52 views
1

你好我想POST變量發送到我的API,並在PHP文件取中發生反應,本地不發送後

這是我沒有獲得這個職位數據我反應過來的本地代碼:

let data = { 
    method: 'POST', 
    headers: { 
     'Accept': 'application/json', 
     'Content-Type': 'application/json', 
    }, 
    body: JSON.stringify({ 
     'firstname': 'test', 
    }), 
} 
fetch(GLOBALS.API + '/registerApi.php?key=' + GLOBALS.KEY, data) 
.then((response) => response.json()) 
.then((responseJson) => { 
    Alert.alert(
     'Alert Title', 
     responseJson.output 
    ) 

}) 
.catch((error) => { 
    console.error(error); 
}); 

它返回我空:[]

$array = array(
    "output" => json_encode($_POST) 
); 
$output = json_encode($array); 
die($output); 

當我使用$_REQUEST它返回我只是key GET參數沒有firstname其中之一。

回答

4

在PHP中,你需要使用

$json = file_get_contents('php://input'); 
$obj = json_decode($json, TRUE) 
3

JSON.stringify我沒有工作,請嘗試使用FORMDATA而不是用於發送準備數據。這裏是例子:

import FormData from 'FormData'; 

var formData = new FormData(); 
formData.append('firstname', 'test'); 

let data = { 
    method: 'POST', 
    headers: { 
     'Accept': 'application/json', 
     'Content-Type': 'application/json', 
    }, 
    body: formData 
} 

fetch(api_url, data) 
.then((response) => response.json()) 
.then((responseJson) => { console.log('response:', responseJson); }) 
.catch((error) => { console.error(error); }); 
+0

你能給我這個模塊的鏈接嗎? '從FormData'導入FormData;' – Kholiavko

+0

如何在您的情況下在服務器端recive數據? – Kholiavko

+1

這是關於Fetch的,在客戶端使用Fetch。已經在React Native中,這不是外部模塊。 –

0

問題是JSON.stringify。 改爲使用FormData。不需要安裝,它不是第三方。這個對我有用。

import FormData from 'FormData'; 

var formData = new FormData(); 

formData.append('username', 'Andy'); 

... 

{ 
    ... 
    body: formData 
    ... 
}