web-dev-qa-db-fra.com

Soumettez à RSform! pro de partout utilisant jQuery ajax

Je suis en train de créer une application d'administration pour Joomla RSform! pro. L'application est hébergée sous forme d'article et se trouve donc sur le même domaine que Joomla.
Je dois déplacer ou copier une soumission d’un formulaire à un autre. Les champs des deux formulaires ne sont pas nécessairement les mêmes, mais la plupart d’entre eux le sont, mais je peux facilement trouver les champs de sorcière figurant dans le nouveau formulaire.

Ce que j'ai fait jusqu'à présent, c'est que je reçois tous les champs, puis crée un objet javascript ressemblant à ceci:

formElements = {
    form:{
        username:'username',
        something:'something
    },
    hidden:{ somethinghidden:'somethinghidden'}
}

ma question est maintenant: Comment puis-je envoyer ceci à la rsform.

J'utilise jQuery.ajax, mais cela ne fonctionne pas.

jQuery.ajax({
    method: "POST",
    url: '/index.php?option=com_rsform&formId=' + fromID,
    data: formElements,
    timeout: 10000,
    dataType: 'html'
}).fail(function (msg) {
}).done(function (msg) {
});

l'URL est la même que celle qui se trouve dans la balise du formulaire de soumission. Donc, je suppose que cela est également correct.

J'ai également créé un faux serveur nodejs sur lequel j'essaie de soumettre en utilisant les formulaires normaux fournis par RSform, et l'objet post que j'ai reçu est identique à l'objet que je crée.

Qu'est-ce que je fais mal? Dois-je définir des en-têtes ou quelque chose? ou qu'est-ce qui me manque ...?

J'espère que quelqu'un pourra vous aider, et ma question a du sens ...

/Merci..

2
pjensen68321

Dans Joomla, les formulaires ont un jeton de session pour empêcher CSRF.

CSRF (Cross-Site Request Forgery) est un type d'attaque qui se produit lorsqu'un site Web, un courrier électronique, un blog, un message instantané ou un programme illicite fait en sorte que le navigateur Web d'un utilisateur exécute une action indésirable sur un site de confiance pour lequel l'utilisateur est actuellement. authentifié.

Si vous envoyez des informations à partir d'Ajax, vous devez suivre les règles pour inclure le jeton dans le formulaire POST, GET ou Url. Sinon, il sera rejeté.

Ref: Comment ajouter un anti-spoofing CSRF aux formulaires

1
Anibal