Не знаю, в чем проблема, это мой угловой скрипт для отправки данных формы в php скрипт по электронной почте.Я попытался получить доступ к примеру кода с GitHub и здесь, но, похоже, ни один не работает для меня.У меня есть следующая ошибка каждый раз, когда я пересылаю, но она отлично работает на почтальоне.
Error: Access to XMLHttpRequest at 'http://127.0.0.1/mediacrow/mymail/mailer_php.php/' from origin 'http://127.0.0.1:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header contains multiple values '*, *',
Angular: contact.component.ts
send() {
console.log(this.contactForm.value);
this.http.post(`http://127.0.0.1/mediacrow/mymail/mailer_php.php/`,
{
data: this.contactForm.value,
headers:
{
'Content-Type': 'application/x-www-form-urlencoded'
}
})
.subscribe((resp) => {
this.snackBar.open(
'Thank you for your submission!',
'', {duration: 4000}
);
}, (err) => {
this.snackBar.open(
'This was an error with your submission!',
'', {duration: 4000}
);
});
}
Это мой почтовый скрипт
<?php
// Headers
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');
//add more for creating a post
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: Access-Control-Allow-headers,
Content-Type, Access-Control-Allow-Methods');
$errors = '';
if( empty( $errors ) ) {
$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$from_email = $request->email;
$message = $request->message;
$phone = $request->phone;
$platform = $request->platform;
$browser = $request->browser;
$name = $request->firstname.' '.$request->lastname;
$from_name = $name;
$response_array = array();
$to_email = "adex@gmail.com";
$contact = "<p><strong>Name: </strong> $from_name</p><p><strong>Email:</strong> $from_email</p>";
$content = "<p><strong>Phone Number: </strong>$phone</p><p><strong>Browser: </strong>$browser</p>
<p><strong>Platform: </strong>$platform</p><p><strong>Message: </strong>$message</p>";
$website = "M&M";
$email_subject = "Contact Form";
$email_body = "<html><body>";
$email_body .= "$contact $content";
$email_body .= "</body></html>";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$headers .= "From: $from_email\n";
$headers .= "Reply-To: $from_email";
mail( $to_email, $email_subject, $email_body, $headers );
$response_array['status'] = 'success';
$response_array['from'] = $from_email;
echo json_encode( $response_array );
} else {
$response_array['status'] = 'error';
echo json_encode($response_array);
}
?>
Я буду так многоблагодарен, что я не знаю, в чем может быть проблема, потому что она отлично работает на почтальоне