Maison interface Web js tutoriel Quels sont les problèmes avec WeChat JSSDK en ajax demandant différentes pages ?

Quels sont les problèmes avec WeChat JSSDK en ajax demandant différentes pages ?

Jun 04, 2018 pm 03:54 PM
ajax javascript

Je vais maintenant partager avec vous un article sur le problème WeChat JSSDK d'ajax demandant différentes pages. Il a une bonne valeur de référence et j'espère qu'il sera utile à tout le monde.

Scénario problématique :

J'ai un contenu de formulaire sur la page A qui doit être imprimé à l'aide d'une imprimante Bluetooth, remplissez les informations du formulaire , et demande via ajax Les informations sont envoyées au fichier B (PHP) pour traitement. Après avoir sauté normalement à la page B via le formulaire, elles peuvent être imprimées, car en plus du PHP qui traite les données, la page B également. contient du code JS, qui est la partie JSSDK. Cependant, lorsqu'il est envoyé via une requête ajax, il n'y a pas de réponse et tous les jssdk à l'exception de wx.ready et wx.config ne peuvent pas être exécutés. (Les deux fichiers A.B ont les configurations wx.config et wx.ready)

Par exemple, les paramètres d'envoi de données :

wx.invoke('sendDataToWXDevice',data,function(res){
  //微信提供的接口,只有这么一个回调函数,如果通过ajax请求,则无法进入回调函数
 if(res.err_msg=='sendDataToWXDevice:ok')
 {
  alert("打印成功");
  window.history.go(-1);
 }
 else
 {
  alert("打印失败");
 } 
 });
Copier après la connexion

J'ai donc deviné qu'en demandant le fichier PHP, les données renvoyées contenaient la partie code JS de ma page B En d'autres termes, la page A avait wx.config et wx.ready, et la page B avait wx.config et wx.ready. Le contenu renvoyé par la page a également ces deux interfaces. Afin d'éliminer ce problème,

j'ai supprimé toutes les interfaces WeChat de la page B. Seul le contenu qui doit être envoyé après traitement du formulaire est enregistré dans une entrée.

//返回 处理后的数据
echo &#39;<input type = "hidden" name = "print_str" id = "print_str" value="&#39;.$hex_str.&#39;"/ >&#39;;
echo &#39;<input type = "hidden" name = "device_id" id = "device_id" value="&#39;.$device_ID.&#39;"/ >&#39;;
?>
Copier après la connexion

L'impression de la page de saut d'origine est modifiée en impression de demande asynchrone. En fait, l'envoi des données de WeChat à l'appareil est toujours exécuté sur la page A et. fichier B. Il est uniquement responsable du renvoi des données transmises de A à B et traitées par cryptage. Par conséquent, supprimez tous les codes HTML et JS mixtes dans le fichier B. Il convient de noter si la configuration contient l'attribut beta:true. , car cela implique du matériel SDK est requis, et si l'interface matérielle du SDK à utiliser est également renseignée dans les paramètres de la liste d'interface

Je pensais que mon idée était correcte à l'époque. Mais chaque fois que j'utilise document.write pour écrire les résultats renvoyés dans les fonctions de rappel de wx.invoke, y compris openWXDeviceLib, sendDataToWXDevice, etc., mais je constate vite que la sortie après wx.invoke n'est pas exécutée à chaque fois, et mon original page Le contenu a également été effacé. Je n'étais pas au courant de ce problème à ce moment-là, j'ai donc continué à tester jusqu'à ce que je génère les données renvoyées par la page B avant l'appel (le contenu document.write ci-dessus est ma fonction de rappel de réussite une fois la demande réussie. ) sortie), j'ai réalisé que les données que je voulais envoyer étaient devenues indéfinies lorsque j'ai exécuté la méthode d'invocation, et j'ai soudainement découvert que le contenu original de ma page avait été effacé (car il était auparavant passé à B La page a été imprimée, donc c'était vide, ~~, je m'y suis habitué et je n'ai remarqué aucun changement). Plus tard, je suis passé à la sortie d'alerte et j'ai pu imprimer normalement, c'est-à-dire dans la fonction de rappel encapsulée en ajax. JQUERY, utilisez document.write pour afficher, réinitialisera le contenu de la page (la raison pour laquelle j'utilise document.write pour afficher est qu'à une certaine étape du test précédent, la configuration initialement utilisée comme débogage a fait apparaître des informations via la fenêtre d'alerte, mais je ne sais pas pourquoi il a utilisé document.write Le formulaire est écrit sur la page. J'ai oublié ce qui s'est passé à ce moment-là, donc cette erreur s'est produite, mais je suis toujours au courant de ce problème de JQ)

Rappelez-vous : L'utilisation de document.write pour afficher le contenu dans la fonction de rappel de réussite ajax de JQuery réinitialisera le contenu de la page. Comme pour les autres fonctions de rappel, vous pouvez y jeter un œil vous-même.

Ce qui précède est ce que j'ai compilé pour vous. J'espère que cela vous sera utile à l'avenir.

Articles connexes :

Une brève discussion sur les différentes méthodes d'introduction des styles less, sass et css dans les composants de fichier unique Vue-cli

Résoudre le problème de chargement des projets créés par vue-cli

Utilisez vue pour écrire un exemple de code pour un graphique carrousel imitant un livre simplifié

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment résoudre l'erreur 403 rencontrée par la requête jQuery AJAX Comment résoudre l'erreur 403 rencontrée par la requête jQuery AJAX Feb 20, 2024 am 10:07 AM

Titre : Méthodes et exemples de code pour résoudre les erreurs 403 dans les requêtes jQuery AJAX L'erreur 403 fait référence à une demande selon laquelle le serveur interdit l'accès à une ressource. Cette erreur se produit généralement parce que la demande manque d'autorisations ou est rejetée par le serveur. Lorsque vous effectuez des requêtes jQueryAJAX, vous rencontrez parfois cette situation. Cet article explique comment résoudre ce problème et fournit des exemples de code. Solution : Vérifiez les autorisations : assurez-vous d'abord que l'adresse URL demandée est correcte et vérifiez que vous disposez des autorisations suffisantes pour accéder à la ressource.

Comment résoudre l'erreur 403 de la requête jQuery AJAX Comment résoudre l'erreur 403 de la requête jQuery AJAX Feb 19, 2024 pm 05:55 PM

jQuery est une bibliothèque JavaScript populaire utilisée pour simplifier le développement côté client. AJAX est une technologie qui envoie des requêtes asynchrones et interagit avec le serveur sans recharger la page Web entière. Cependant, lorsque vous utilisez jQuery pour effectuer des requêtes AJAX, vous rencontrez parfois des erreurs 403. Les erreurs 403 sont généralement des erreurs d'accès refusé par le serveur, probablement en raison de problèmes de politique de sécurité ou d'autorisation. Dans cet article, nous verrons comment résoudre la requête jQueryAJAX rencontrant une erreur 403.

Comment obtenir des variables de la méthode PHP en utilisant Ajax ? Comment obtenir des variables de la méthode PHP en utilisant Ajax ? Mar 09, 2024 pm 05:36 PM

L'utilisation d'Ajax pour obtenir des variables à partir de méthodes PHP est un scénario courant dans le développement Web. Grâce à Ajax, la page peut être obtenue dynamiquement sans actualiser les données. Dans cet article, nous présenterons comment utiliser Ajax pour obtenir des variables à partir de méthodes PHP et fournirons des exemples de code spécifiques. Tout d’abord, nous devons écrire un fichier PHP pour gérer la requête Ajax et renvoyer les variables requises. Voici un exemple de code pour un simple fichier PHP getData.php :

Comment résoudre le problème de l'erreur 403 jQuery AJAX ? Comment résoudre le problème de l'erreur 403 jQuery AJAX ? Feb 23, 2024 pm 04:27 PM

Comment résoudre le problème de l’erreur 403 jQueryAJAX ? Lors du développement d'applications Web, jQuery est souvent utilisé pour envoyer des requêtes asynchrones. Cependant, vous pouvez parfois rencontrer le code d'erreur 403 lors de l'utilisation de jQueryAJAX, indiquant que l'accès est interdit par le serveur. Cela est généralement dû aux paramètres de sécurité côté serveur, mais il existe des moyens de résoudre le problème. Cet article explique comment résoudre le problème de l'erreur 403 jQueryAJAX et fournit des exemples de code spécifiques. 1. faire

PHP et Ajax : créer un moteur de suggestions de saisie semi-automatique PHP et Ajax : créer un moteur de suggestions de saisie semi-automatique Jun 02, 2024 pm 08:39 PM

Créez un moteur de suggestions de saisie semi-automatique en utilisant PHP et Ajax : Script côté serveur : gère les requêtes Ajax et renvoie des suggestions (autocomplete.php). Script client : envoyer une requête Ajax et afficher des suggestions (autocomplete.js). Cas pratique : Incluez le script dans la page HTML et spécifiez l'identifiant de l'élément d'entrée de recherche.

PHP vs Ajax : solutions pour créer du contenu chargé dynamiquement PHP vs Ajax : solutions pour créer du contenu chargé dynamiquement Jun 06, 2024 pm 01:12 PM

Ajax (Asynchronous JavaScript et XML) permet d'ajouter du contenu dynamique sans recharger la page. En utilisant PHP et Ajax, vous pouvez charger dynamiquement une liste de produits : HTML crée une page avec un élément conteneur et la requête Ajax ajoute les données à l'élément après l'avoir chargé. JavaScript utilise Ajax pour envoyer une requête au serveur via XMLHttpRequest afin d'obtenir des données produit au format JSON à partir du serveur. PHP utilise MySQL pour interroger les données produit de la base de données et les encoder au format JSON. JavaScript analyse les données JSON et les affiche dans le conteneur de pages. Cliquer sur le bouton déclenche une requête Ajax pour charger la liste de produits.

PHP et Ajax : moyens d'améliorer la sécurité d'Ajax PHP et Ajax : moyens d'améliorer la sécurité d'Ajax Jun 01, 2024 am 09:34 AM

Afin d'améliorer la sécurité Ajax, il existe plusieurs méthodes : Protection CSRF : générer un token et l'envoyer au client, l'ajouter côté serveur dans la demande de vérification. Protection XSS : utilisez htmlspecialchars() pour filtrer les entrées afin d'empêcher l'injection de scripts malveillants. En-tête Content-Security-Policy : limite le chargement de ressources malveillantes et spécifie les sources à partir desquelles les scripts et les feuilles de style peuvent être chargés. Valider les entrées côté serveur : validez les entrées reçues des requêtes Ajax pour empêcher les attaquants d'exploiter les vulnérabilités d'entrée. Utilisez des bibliothèques Ajax sécurisées : profitez des modules de protection CSRF automatiques fournis par des bibliothèques telles que jQuery.

Échange de données asynchrone à l'aide des fonctions Ajax Échange de données asynchrone à l'aide des fonctions Ajax Jan 26, 2024 am 09:41 AM

Comment utiliser les fonctions Ajax pour réaliser une interaction de données asynchrone Avec le développement de la technologie Internet et Web, l'interaction des données entre le front-end et le back-end est devenue très importante. Les méthodes traditionnelles d’interaction avec les données, telles que l’actualisation des pages et l’envoi de formulaires, ne peuvent plus répondre aux besoins des utilisateurs. Ajax (JavaScript asynchrone et XML) est devenu un outil important pour l'interaction de données asynchrones. Ajax permet au Web d'utiliser JavaScript et l'objet XMLHttpRequest

See all articles