我在使用React Native的fetch的POST请求时遇到问题。请求完全正常,但$ _POST变量并未出现在所有服务器端。我在帖子之前搜索了很多,但没有骰子。
有人能指出我正确的方向吗?获取请求的代码如下。
const dataString = `username=${email}&password=${password}`;
export default function ajaxPost(dataString, url, callback) {
return fetch(url, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(dataString)
})
.then((response) => response.json())
.then((responseJson) => {
callback(responseJson);
})
.catch((error) => {
console.error(error);
});
}
我如何在PHP上访问它:
$data = 'username=' . $_POST['username'] . '&password=' . $_POST['password'];
echo json_encode($data);
我也尝试过硬编码:
export default function ajaxPost(dataString, url, callback) {
return fetch(url, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
username: 'test',
password: 'test123'
})
})
.then((response) => response.json())
.then((responseJson) => {
callback(responseJson);
})
.catch((error) => {
console.error(error);
});
}
答案 0 :(得分:1)
export default function ajaxPost(email,password, url, callback) {
return fetch(url, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
user:{
username: email,
password: password,
}
})
})
.then((response) => response.json())
.then((responseJson) => {
callback(responseJson);
})
.catch((error) => {
console.error(error);
});
}
现在可以访问用户名和密码
$_POST['user']['username'], $_POST['user']['password']
答案 1 :(得分:1)
如果以发送方式发送,数据不会转到_POST数组。您可以使用
在PHP端获取它json_decode(file_get_contents('php://input'), true)
或者使用FormData
对象并删除js中的json头以传统地获取数据(通过_POST和_GET)。
答案 2 :(得分:0)
我使用相同的方法,它适用于我。你可以尝试两件事