Gautierrr Posted February 25, 2014 Share Posted February 25, 2014 (edited) Bonjour à toutes et à tous ! Je suis confronté à un problème avec un Prestashop en 1.5.6.2 et, en l’occurrence, Systempay. Lorsque je sélectionne le mode de paiement Systempay et que la redirection vers la plateforme se lance, une fenêtre Ajax apparaît avec le message suivant : TECHNICAL ERROR: Details: Error thrown;[object Object] Text status: error Lorsque je clique sur "ok" le message disparaît et la redirection se fait correctement. Il n'y a donc, en apparence, pas de problème fonctionnel mais ce message peut paraître déroutant pour l'utilisateur. En observant les logs en direct via les outils de chrome, j'ai pu remarquer qu'une erreur js se produisait dans le fichier bibliothèque jquery-1.7.2.min.js. Cette erreur correspond à la ligne suivante : h.send(c.hasContent&&c.data||null), en version non compressée cela donne : xhr.send( ( s.hasContent && s.data ) || null ); En recherchant de nouveau sur le net, j'ai cru comprendre que cela avait un rapport avec le "cross domain" (Ajax cross domain pour être précis). Mais là, ça me dépasse ! Y-a-t-il moyen de simplement masquer ce message ou le problème du cross domain peut être résolu ? Si quelqu'un a une idée je suis preneur ! Ps : en pièce jointe une capture de l'erreur dans les logs (le fichier "jquery-1.7.2.min.js" correspondant à la version non compressée pour identifier l'erreur) Merci d'avance, Gautier Edited February 28, 2014 by Gautierrr (see edit history) Link to comment Share on other sites More sharing options...
JayLab Posted February 25, 2014 Share Posted February 25, 2014 Comment as tu configuré systempay ? Via le back offfice de la banque ? ou de prestashop ? Leur service technique est plutot top, tu peux les appeller aussi. Je ne suis pas certain que cela vienne de jQuery. Link to comment Share on other sites More sharing options...
Gautierrr Posted February 25, 2014 Author Share Posted February 25, 2014 Via le back office mais j'ai toujours fait comme ça et je n'ai pas de problème sur mes autres boutiques, du moins je n'ai pas le message. Et non ça ne vient pas directement du jQuery mais du cross domain (grossièrement le fait d'appeler des ressources Ajax sur un autre domaine et avec un protocole différent, pour le peu que j'ai compris). Oui je pense que je vais les appeler en dernier recours, j'ai déjà eu besoin de les contacter et c'est vrai qu'ils sont efficaces ! Je vais refaire un essai sur un autre serveur avant pour voir si ça ne peut pas venir de l'hébergeur car en local je n'ai pas ce problème. Merci pour ton aide. Link to comment Share on other sites More sharing options...
JayLab Posted February 26, 2014 Share Posted February 26, 2014 Pourquoi passes tu par du ajax ? Link to comment Share on other sites More sharing options...
Gautierrr Posted February 27, 2014 Author Share Posted February 27, 2014 C'est par défaut je n'ai rien touché. Link to comment Share on other sites More sharing options...
nabil509 Posted February 27, 2014 Share Posted February 27, 2014 C'est par défaut je n'ai rien touché. Bonjour, La page de redirection du module n'est pas censée faire de l'ajax, c'est une redirection HTML POST. L'appel ajax est effectué par un autre module. Peux-tu nous envoyer les appels XHR effectués au moment de l'affichage de la pop-up ? (onglet Réseau => icône entonnoir filtrer => onglet XHR) Peux-tu nous envoyer également les fichiers JS chargés ? onglet Réseau => icône entonnoir filtrer => onglet Scripts) c'est pour savoir depuis quel fichier l'appel XHR est parti. Link to comment Share on other sites More sharing options...
Gautierrr Posted February 27, 2014 Author Share Posted February 27, 2014 Bonjour, Alors, en pièce jointe, la capture des JS chargés. Par contre, j'ai fait plusieurs essais mais rien ne s'affiche dans les appels XHR... Pour info, j'ai contacté les devs du module et le message ne s'est pas affiché chez eux. J'ai essayé sur les différents pc de mon entreprise, le message apparaît sur chacun d'entre eux seulement sous chrome (sans extension, navigateur à jour, cache vidé...). Donc sinon je vais essayer sur des ordis externes pour voir mais c'est quand même bizarre. Merci quand même pour ton aide ! Link to comment Share on other sites More sharing options...
Gregory Roussac Posted February 27, 2014 Share Posted February 27, 2014 Hello, Ce n’est pas jquery qui a un souci c'est comme vous le dites tous surement son envoi ou la réponse d'une requête ajax (surement celle du panier) qui le gène, juste avant la redirection ou pendant si celle ci l'annule vu qu'apparement elle est vide. Pourquoi vous parlez de cross domain, cette requête part normalement vers le panier, pourquoi elle partirait vers un autre domaine ? On peut voir votre site ? Sinon le cross domain se contourne avec des htaccess mais d'abord il faudrait savoir pourquoi vous parlez de cross domain, car oui une requête annulée par Chrome peut très bien ressembler a cela. Il le dit d’ailleurs normalement dans la console qu'il bloqué une ressource ou une requête. Donc soit une redirection qui annule la requête, soit la requête part vers un autre site et ça ça rickroll. Cordialement Link to comment Share on other sites More sharing options...
Gautierrr Posted February 28, 2014 Author Share Posted February 28, 2014 Bonjour ! Je parlais de cross domain car après quelques recherches sur la ligne qui posait problème dans le js le cross domain était évoqué, simplement Bref, après plusieurs échanges et tests avec les devs du module, le problème semble être résolu (bien qu’apparemment, il ne se posait que chez moi..) La redirection se faisait directement au chargement de la page et empêchée cette dernière de se charger normalement, à priori. La solution ayant fonctionné pour résoudre mon problème est la suivante : modifier le script en bas du fichier redirect.tpl du module sytempay (dossier modules\systempay\views\templates\front) de cette manière : Remplacer : <script type="text/javascript"> {literal} $('#systempay_form').submit(); {/literal} </script> Par : <script type="text/javascript"> $(function() { setTimeout(function() { $('#systempay_form').submit(); }, 1000); }); </script> Qui permet en fait de laisser la page se charger complètement avant la redirection automatique. Voilà encore merci pour votre aide ! Gautier Link to comment Share on other sites More sharing options...
iorek Posted February 28, 2014 Share Posted February 28, 2014 réglé par le support "top" de Systempay. :-) Link to comment Share on other sites More sharing options...
Gautierrr Posted February 28, 2014 Author Share Posted February 28, 2014 Haha oui effectivement Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now