我正在尝试使用 fetch 和 catch 方法将 JSON stringfy 请求发送到 PHP 文件,我可以执行某些函数。现在我没有收到任何错误,但我无法让该功能正常工作。 fetch('http://localhost/server/mail.php', { method: 'POST', redirect: 'follow', headers : { 'Content-Type': 'application/json', 'Accept': 'application/json' }, body: JSON.stringify({ // Passes values to mail.php name: inputName, phone: inputPhone }), }) .then(response =>{ console.log(response); if(response === 'success'){ history.push("/start"); // Route to another page history.go(0); } }) .catch(function(err) { // Return error console.log(err); });如果我调试,console.log(response)我会收到包含以下内容的反应对象:响应{type:“cors”,url:“http://localhost/server/mail.php”,重定向:false,状态:200,ok:true,bodyUsed:false,...}最后,我使用 PHP Mailer 库通过它发送邮件的 PHP 代码,我之前在另一个项目中使用过相同的代码,应该可以正常工作。<?phpuse PHPMailer\PHPMailer\PHPMailer;use PHPMailer\PHPMailer\Exception;require './phpmailer/src/Exception.php';require './phpmailer/src/PHPMailer.php';require './phpmailer/src/SMTP.php';$name = $_POST['name'];$from = 'admin@yotamdahan.com'$to = 'admin@yotamdahan.com'; $message = $_POST['phone'];$subject = 'משתמש חדש';$mail = new PHPMailer();$mail->SMTPDebug = 0;$mail->CharSet = 'UTF-8';$mail->SMTPAuth = true;$mail->Host = "server270.web-hosting.com";$mail->Port = 465;$mail->Username = $to;$mail->Password = "*******";$mail->SMTPSecure = "ssl";$mail->setFrom($from);$mail->Subject = $subject;$mail->isHTML(true);$mail->Body = "שם השולח: " . $name . "\r\n <br/> הודעה: " . $message;$mail->addAddress($to, 'Yotam Dahan');if(!$mail->Send()){ echo "Error sending: " . $mail->ErrorInfo;}else{ echo "success";}我的问题是 PHP 没有发送电子邮件,我猜想,inputName并且InputPhone没有正确传递,因此代码无法运行,响应也不是success应有的样子。如何通过reactJS中的fetch和catch向PHP发送正确的POST请求?
1 回答
30秒到达战场
TA贡献1828条经验 获得超6个赞
您正在发送数据,application/json但从$_POST获取数据application/x-www-form-urlencoded。
您可以使用FormData正确的内容类型创建数据,然后将URLSearchParams其传递FormData给获取函数的主体。
您可以像这样使用 FormData:
const formData = new FormData();
formData.append("name", inputName);
然后像这样发送
fetch('http://localhost/server/mail.php', {
method: 'POST',
redirect: 'follow',
body: new URLSearchParams(formData)
});
- 1 回答
- 0 关注
- 78 浏览
添加回答
举报
0/150
提交
取消