我正在嘗試使用 axios 將發布請求發送到 PHP 檔案。處理按鈕提交資料的函式是這樣的:
function handleAddPeople(event){
const name = nameRef.current.value;
const surname = surnameRef.current.value;
const age = ageRef.current.value;
axios({
method: 'post',
url: 'src/api/addPeople.php',
data: {
name: name,
surname: surname,
age: age
}
}).then(function(response){
console.log(response);
}).catch(function (error) {
console.log(error);
});
}
在 addPeople.php 檔案中我有這個:
$con = mysqli_connect($host, $user, $password,$dbname);
$method = $_SERVER['REQUEST_METHOD'];
$request = explode('/', trim($_SERVER['PATH_INFO'],'/'));
if (!$con) {
die("Connection failed: " . mysqli_connect_error());
}
$_POST = json_decode(file_get_contents("php://input"),true);
echo $_POST['name'];
$name = $_POST["name"];
$email = $_POST["surname"];
$country = $_POST["age"];
$sql = "insert into tabella1 (name, surname, age) values ('$name', '$surname', '$age')";
$result = mysqli_query($con,$sql);
if (!$result) {
http_response_code(404);
die(mysqli_error($con));
} else {
$con->close();
}
從反應我沒有得到任何錯誤,這意味著我沒有語法錯誤,但我得到了錯誤:
Cannot POST /src/api/addPeople.php
我還有第二個小問題。我已經盡可能地簡化了 .php 檔案以查找錯誤,但第一個想法是創建一個帶有一些函式來處理請求的 php 類,我想有一個像這樣的 URL “path/to/ axios post方法中的phpFile/functionName”,對嗎?
uj5u.com熱心網友回復:
您需要將 PHP 程式托管在可以執行 PHP 的 Web 服務器上。
錯誤訊息表明您正在嘗試將其托管在 Webpack 開發服務器(適合托管 React 應用程式和其中的任何靜態檔案)或 Express.js 上。
選擇一個支持 PHP 的服務器(例如它的內置服務器或適當配置的 Apache HTTPD),添加CORS權限(這將需要包括飛行前支持),并在傳遞給.axios
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/428965.html
標籤:javascript php 反应 axios
上一篇:將回應值的狀態推送到依賴項
