Я создал свою форму и могу записать свой ввод с помощью состояния (используя реакцию), но при отправке я получаю следующую ошибку в моей консоли:
POST http://localhost:3000/my-web-app/src/api/contact/index.php 404 (Not Found)
В настоящее время я разрабатываю веб-приложение по-прежнему, я подумал, что проблема может быть в том, что я нахожусь на localhost, поэтому я попытался загрузить файл index. php на сервер, когда я попробовал это, я получил следующую ошибку:
Access to XMLHttpRequest at 'https://website.ca/index.php' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Я попытался добавить заголовок в свой php файл, но ничего не изменилось ...
Вот как выглядит мой почтовый запрос:
handleFormSubmit = e => {
e.preventDefault();
axios({
method: 'post',
url: `${API_PATH}`,
headers: { 'content-type': 'application/json' },
data: this.state
})
.then(result => {
this.setState({
mailSent: result.data.sent
})
})
.catch(error => this.setState({ error: error.message }));
};
А вот мой файл index. php (единственная цель - отправить простое электронное письмо):
<?php
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE");
header("Access-Control-Allow-Headers: Authorization");
$rest_json = file_get_contents("php://input");
$_POST = json_decode($rest_json, true);
if (empty($_POST['fname']) && empty($_POST['email'])) die();
if ($_POST)
{
// set response code - 200 OK
http_response_code(200);
$subject = $_POST['fname'];
$to = "info@cannections.ca";
$from = $_POST['email'];
// data
$msg = $_POST['number'] . $_POST['message'];
// Headers
$headers = "MIME-Version: 1.0\r\n";
$headers.= "Content-type: text/html; charset=UTF-8\r\n";
$headers.= "From: <" . $from . ">";
mail($to, $subject, $msg, $headers);
// echo json_encode( $_POST );
echo json_encode(array(
"sent" => true
));
}
else
{
// tell the user about error
echo json_encode(["sent" => false, "message" => "Something went wrong"]);
}
?>
Я никогда не развертывал приложение response. js (пока) Я не знаю, есть ли эта проблема происходит только из-за localhost, в любом случае мне нужно, чтобы это письмо работало независимо от того, где они (браузеры), и т. д. c ... Я ценю всю помощь, которую я могу получить с этим!
Ура .