我正在尝试使用 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 代码,我之前在另一个项目中使用过相同的代码,应该可以正常工作。
<?php
use 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请求?
30秒到达战场