J'ai ce problème. Dans le site Web externe, j'ai un script comme celui-ci:
<div id="idtest"></div>
<script src="//example.com/widget.js" type="text/javascript"></script>
example.com est en https (autoriser http et https). Dans le serveur dans le script widget.js j'ai:
$('#idtest').load("https://example.com/index.html")
Le message d'erreur suivant s'affiche: Contenu mixte: la page située sur 'thepage' a été chargée via HTTPS, mais elle a demandé un noeud final XMLHttpRequest non sécurisé ' http://example.com/index.html '. Cette demande a été bloquée. le contenu doit être servi sur HTTPS.
Je ne comprends pas: pourquoi l'erreur et pourquoi le noeud final est-il dans "http"? Merci
MODIFIER
Plus d'information:
si dans le widget.js je fais ceci:
$('#idtest').load("./index.html")
le contenu est chargé et tout fonctionne parfaitement si je charge le script sur mon site.
Si je fais quelque chose comme:
x = "https://example.com"
$('#idtest').load(x + "/index.html")
ou
$('#idtest').load("https://example.com/index.html")
Je reçois l'erreur (si je mets le script sur mon site ou sur un site externe). Pourquoi?
EDIT 2
plus d'informations:
mon site est à Django
EDIT 3
Dans Firefox, je charge la page en https et http. Cela ne fonctionne pas dans Chrome. Je vois cette situation dans firefox net analyzer lorsque vous appelez l’URL:
302 https://example.com/index.html 200 http://example.com/index.html [contenu mixte]
Que comprennent cette situation (https to http)? Peut-être un problème de redirection Django?
A erreur de contenu mixte se produit lorsque:
https
) sur une page servie de manière non sécurisée (http
)Ou le contraire
http
) sur une page servie en toute sécurité SSL (https
) servieVotre message d'erreur vous avertit que votre page d'appel a été chargée en mode non sécurisé.
Vous n'avez pas explicitement expliqué cela, mais votre erreur a indiqué que votre page était en cours de traitement sans SSL. Lorsque vous essayez de charger une ressource protégée, cela devient un mode mixte problème de ressources protégées et non sécurisées.
Si possible, essayez de servir le fichier de référence de la même manière
Vous pouvez servir votre page principale dans SSL (https
)
Vous pouvez demander la page partielle dans http
$ ('# idtest'). load (" http://example.com/index.html ")
ou
A propos de votre ressource spécifique:
J'ai essayé de charger:
et
https://example.com/index.html
Le résultat était le même. J'ai une simple page avec le message:
Ce domaine est établi pour être utilisé à titre d’exemple dans les documents. Vous pouvez utiliser ce domaine dans des exemples sans coordination préalable ni demande d'autorisation.
Je pense que c'est plus un problème de domaine d'origine croisée.
la fonction $ .load de jquery utilise ajax pour charger l'URL et vous ne pouvez donc pas effectuer d'appel entre domaines si l'URL cible n'implémente pas les en-têtes CORS.
Dans votre exemple, le serveur exemple.com doit retourner un en-tête.
Access-Control-Allow-Origin: *
Vous pouvez également remplacer * par le domaine de la page qui souhaite charger le contenu par AJAX.
Un bon article de blog sur la façon d'utiliser CORS: http://www.html5rocks.com/en/tutorials/cors/
J'ai eu ce problème sur la page Web de Ruby on Rails et l’erreur était d’utiliser l’aide "_url" au lieu de l’aide "_path", sur une page Web https:
dans une vue : faux: borrar_linea_factura_url(l)
ok: borrar_linea_factura_path(l)
En résumé de ce qui a été dit auparavant:
L'assistant "_url" génère /controller/action/params
L'assistant "_path" génère https://controller/action/params