gpt4 book ai didi

javascript - 无法获取 php 文件中 axios POST 方法的属性

转载 作者:行者123 更新时间:2023-12-02 23:18:48 25 4
gpt4 key购买 nike

我尝试使用 php 和 axios 发送邮件。我将数据存储在某些属性上,然后尝试通过 axios 调用 post 方法。电子邮件已发送,但值为空。看起来我无法在 php 中获取这个值。

// js  
axios
.post("./vendor/sendmail.php", {
name: nameInput.value,
email: emailInput.value,
message: textarea.value
})
.then(respond => {
console.log(respond);
})
.catch(error => {
console.log(error);
});

// php
<?php
$email = $_POST['email'];
$message = $_POST['message'];
$name = $_POST['name'];
$body = "Email: {$email}\n\nName: {$name}\n\nMessage: {$message}\n\n";
mail("myemail@gmail.com", 'A new message', $body, "From: test@gmail.com");
?>

我在收件箱中收到此信息:

电子邮件:

姓名:

消息:

(包含空值的电子邮件)

最佳答案

Axios 可能将其编码为 JSON。您需要将输入读入 PHP,而不是 $_POST 变量。给我一点时间,我要挖掘一些代码。

<小时/>

它的作用是检测 Content-Type header ,如果它是 application/json 那么它将把输入读取到 PHP 中并对其进行解码。它可以使用 try/catch,以防 JSON 无效。

function convertInput() {
if (!empty($_SERVER["HTTP_CONTENT_TYPE"])) {
$contentTypes = explode(";", $_SERVER["HTTP_CONTENT_TYPE"]);

if (in_array("application/json", $contentTypes)) {
$rawInput = file_get_contents('php://input');
return json_decode($rawInput, true);
}
}

return [];
}

关于javascript - 无法获取 php 文件中 axios POST 方法的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57041458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com