Le code jQuery simple fonctionne bien jusqu’à ce que le site soit chargé via https: //

J’ai un simple morceau de code jQuery qui soumet un formulaire et cache / affiche des informations à l’écran. Il fonctionne correctement lorsqu’il est testé, jusqu’à ce qu’il soit chargé via https: // sur lequel il se brise dans IE7. Il semble se rompre totalement, aucun des scripts n’ayant d’effet. Je reçois aussi le message d’alerte indiquant que “certains éléments ne sont pas sûrs”.

Quelqu’un at-il une expérience de ce qui se passe? Ou mieux encore, une solution! Je dois charger la page via https comme page de paiement par carte de crédit.

Les trois réponses précédentes mentionnent toutes le problème d’une page sécurisée “https” tentant d’inclure des scripts ou d’autres ressources (feuilles de style, images, etc.) à partir d’un chemin “http” …

Je voudrais append à cela, et notez que si vous avez une situation où les mêmes pages peuvent être chargées via http ou https, vous pouvez alors créer des URL “sans protocole” – le protocole sera supposé être le identique à la page actuelle. Notez que cela n’est nécessaire que pour accéder aux ressources sur différents domaines (et ne fonctionnera que si ces différents domaines prennent en charge à la fois http et https), car évidemment, si vous accédez à des ressources sur le même domaine, // du tout…

Par exemple, chacune de ces trois ressources prendrait http ou https en fonction de l’access à la page en cours:

 whatever  

Si vous diffusez une page via https:// chaque lien de ressource doit également utiliser https:// . Guetter

  

Merci pour toutes vos consortingbutions. Le problème a finalement été détecté dans une image mentionnée dans Thickbox.js.

Parce que cela comportait une URL http: // (pas https: //), cela provoquait le message d’erreur. Le message de sécurité qui apparaît contient un oui ou un non pour le chargement de contenu non sécurisé, et cliquer sur Oui indiquait au navigateur de ne plus charger aucun fichier jQuery.

Un problème délicat alors j’ai pensé que je me répondrais dans l’espoir que cela pourrait aider quelqu’un d’autre avec le même problème.

Si le client utilise le protocole HTTPS pour demander la page, la page doit être liée à tous les médias (images, scripts, feuilles de style) via HTTPS.

Si le client utilise HTTP pour demander la page, vous devez envoyer ce fragment HTML dans votre réponse:

    

Si le client a utilisé HTTPS pour demander la page, vous devez envoyer ce fragment HTML dans votre réponse:

    

La différence est que, lorsque le client demande la page avec HTTPS, le serveur renvoie un lien vers le script jquery qui commence par https:// .

Vous pouvez également voir un comportement similaire si vous utilisez jquery à partir de code.jquery.com

par exemple:

code.jquery.com n’a pas de SSL valide.

Cela peut empêcher d’autres scripts de fonctionner correctement.

utilisez plutôt le cdn Google ou chargez le jquery depuis votre propre serveur

J’espère que cela aide

J’utilisais IE 11 comme navigateur.

Solution: N’utilisez pas le mode de compatibilité. Outils-> Paramètres d’affichage de compatibilité.

Symptômes:

Le programme avait bien fonctionné en mode http.

Le navigateur a signalé une erreur sur une ligne, affirmant qu’un identifiant était attendu.

Le navigateur n’autoriserait pas le débogage sur le fichier de bibliothèque jquery. Le fichier n’apparaissait pas dans la liste des fichiers à déboguer, des points d’arrêt pouvaient être définis sur le fichier s’ils étaient accessibles via le message d’erreur dans le journal de la console du développeur, mais les points d’arrêt étaient désactivés.

Le navigateur montre clairement que le fichier a été chargé avec succès.

Aucune erreur n’est apparue lors de l’utilisation d’un autre navigateur.

Astuce: j’ai mis le programme de test à zéro en chargeant le fichier de bibliothèque jquery et un seul div qui affichait un texte fixe, de sorte qu’il n’y avait pas de code propre qui puisse mal tourner. Cela a grandement simplifié la liste de ce qui pourrait être faux.