2
votes

Impossible de POST / chemin

J'ai parcouru plusieurs articles à ce sujet, mais je n'arrive pas à identifier le problème. Je crée une page de don pour une organisation et j'en ai besoin pour vérifier si PayPal fonctionne même. C'est une erreur entre mon formulaire et app.post. L'erreur que j'obtiens est: Impossible de POST / chemin. Je ne peux pas utiliser / car c'est le chemin d'accès à mon formulaire de contact

<div class="container-contact100-form-btn">
        <h2>Donación de 10 USD</h2>
        <form action="/done" method="post">
            <button type="submit" class="btn btn-warning"  value="Buy">Donación</button>
        </form>
        </div>

Forme:

   app.get("/donate", (req, res) => res.sendFile(__dirname + "views/donate.html"));
    app.post("/done", (req, res) => {
        const create_payment_json = {
            intent: "sale",
            payer: {
                payment_method: "paypal",
            },
            redirect_urls: {
                return_url: "https://asociacioncorazondiverso.org/donate.html",
                cancel_url: "https://asociacioncorazondiverso.org/donate.html",
            },
            transactions: [
                {
                    item_list: {
                        items: [
                            {
                                name: "Donación",
                                sku: "001",
                                price: "10.00",
                                currency: "USD",
                                quantity: 1,
                            },
                        ],
                    },
                    amount: {
                        currency: "USD",
                        total: "10.00",
                    },
                    description: "Donación",
                },
            ],
        };

        paypal.payment.create(create_payment_json, function (error, payment) {
            if (error) {
                throw error;
            } else {
                for (let i = 0; i < payment.links.length; i++) {
                    if (payment.links[i].rel === "approval_url") {
                        res.redirect(payment.links[i].href);
                    }
                }
            }
        });
    });


17 commentaires

Recevez-vous la soumission du formulaire sur votre console?


Non, je ne reçois pas cela lorsque je soumets le formulaire


Pouvez-vous publier le code complet de l'extrait supérieur au lieu de publier la moitié d'un extrait?


J'en ai ajouté d'autres ne me laisse pas publier tout le code


@Sharkhan des suggestions


Code source @Shafkhan du tutoriel: github.com/gauti123456/PaypalNode.js/blob/master/index.js


J'ai exécuté votre application sur mon ordinateur et cela a fonctionné. Il redirige vers la page de paiement PayPal.


Ce n'est pas sur mon mien quel pourrait être le problème? J'ai également mes informations de formulaire de contact sur ce fichier server.js.


@Shafkhan Voici tout mon code: github.com/lebaneseblonde252/AsocicaionCorzonDiverso


Pouvez-vous créer une opération CRUD, la pousser vers github avec le fichier package.json et partager avec moi le lien s'il vous plaît?


Fait voici le lien: github.com/lebaneseblonde252/AsocicaionCorzonDiverso


@Shafkhan Voici le lien.


Dans votre serveur, vous avez views/path non /path mais en html, vous avez path . Avez-vous vérifié cela?


@esqew Aucune chance que ce soit le cas. Vous pouvez trouver mon code ici: github.com/lebaneseblonde252/AsocicaionCorzonDiverso


@ lebaneseblonde252 À l'avenir, veuillez noter qu'il est mal vu de ne pas inclure d' exemple minimal et reproductible dans le corps de votre question en établissant un lien vers des sources externes. Les liens externes ont tendance à se rompre et à supprimer la plupart de toute valeur pour les futurs visiteurs de votre question. Au lieu de cela, modifiez votre question pour inclure les parties pertinentes de votre code afin de mieux aider ceux qui essaient de vous aider. Voir aussi: Comment demander .


@SagarV J'ai déjà essayé cela ne change rien.


L'erreur "Cannot POST" signifie généralement que l'itinéraire n'est pas défini. C'est exactement le cas dans le code téléchargé sur GitHub. Cela ressemble à un désordre, et il définit la route post "/" à l'intérieur du gestionnaire de route post "/sendmail" .


5 Réponses :


2
votes

Votre code tel que vous avez publié sur GitHub et fourni dans les commentaires sur la question initiale montre une différence frappante entre ce que vous avez publié ici et ce avec quoi vous travaillez réellement.

Ci-dessus, le paramètre d' action votre <form> est clairement défini sur "/done" (ce qui semble correct, car c'est le chemin que vous avez défini dans le code de votre serveur de réception).

Cependant, le code que vous semblez réellement travailler avec le référencement est /path dans la même <form> déclaration d'élément:

<form action="/done" method="post">
    <button type="submit" class="btn btn-warning"  value="Buy">Donación</button>
</form>

Ajustez le paramètre d' action pour qu'il corresponde à ce que vous avez dans votre question ci-dessus ( "/done" ) afin que votre document HTML POST s au chemin / point final correct que vous avez défini.

<form action="/path" method="post">
    <button type="submit" class="btn btn-warning"  value="Buy">Donación</button>
</form>


2 commentaires

ils sont tous deux définis comme chemin maintenant, mais j'obtiens toujours cette erreur: Impossible de POST / chemin


Je reçois maintenant une variable de corps non résolue dans webstorm: let textBody = FROM: ${request.body.name} EMAIL: ${request.body.email} MESSAGE: ${request.body.message} ; J'ai app.use (express.json ()); app.use (express.urlencoded ({extended: false})); // il s'agit de gérer les données encodées en URL



0
votes

J'ai vu une erreur de syntaxe dans votre fichier server.js sur votre lien github pour ce code

app.post("/", function(request, response) {

cette partie n'est pas fermée correctement, sinon votre code fonctionne si vous utilisez correctement les chemins.


6 commentaires

J'ai fermé cela en obtenant toujours cette erreur lorsque je clique sur mon bouton de don: Impossible de POST / chemin


ses vues / chemin, pas seulement chemin. app.post ( views/path , (req, res) => *


Je l'ai changé. Je dis toujours un chemin non défini dans mon fichier html. Lorsque j'ai fermé les balises, je reçois maintenant une variable de corps non résolue que j'ai publiée sur stackoverflow et j'ai chargé le middleware bodyparser: stackoverflow.com/questions/64785920/unresolved-body-variabl‌ e


Correction de mon serveur ne pouvant pas POST de vues / chemin


Le dernier code envoyé à github vérifie donate.html et server.js: github.com/lebaneseblonde252/AsocicaionCorzonDiverso


J'ai apporté des modifications, veuillez vérifier ce lien



0
votes

Essayez de conserver l'URL complète de l'API

<form action="http://localhost:3030/done" method="post">
    <button type="submit" class="btn btn-warning"  value="Buy">Donación</button>
</form>


0 commentaires

-2
votes

Bonsoir et si vous changez de code

app.post, app.get to 


const router = express.Router();

router.get('/done', (req, res) => { // do smth });

app.use('/', router);

app.use(router);

Il devrait fonctionner pour vous. Essayez juste;)


0 commentaires

0
votes

Il y a un problème de crochets dans le fichier server.js que vous avez hébergé sur github. Les routes de publication sont définies dans la route / sendmail. Déplacez-les à l'extérieur et cela devrait fonctionner.


0 commentaires