$ajax et https

Par speedounours, il y a 9 ans


Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

Avec la pagination Laravel 5.2, je cherche à faire un appel $ajax pour rafraichir une partie de ma page.
Le flux transmis est en html. Tout fonctionne en http mais j'ai un souci avec le protocole https

function paginate() { $(document).on('click', '.pagination a', function (e) { e.preventDefault(); var page = $(this).attr('href').split('page=')[1]; getPage(page); }); } /* ---------------------------- ajax laravel request ------------------------------*/ function getPage(page) { $.ajax({ type: "GET", url: window.location.protocol + '//' + window.location.hostname + '/pages/?page=' + page, success: function (data) { $('#cat').html(data); }, complete: function () { reload(); } }); }

Mon fichier .htaccess redirige toutes les requêtes sur https

RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]

Ce que j'obtiens

J'obtiens cette erreur dans google chrome

Mixed Content: The page me 'https://monsite' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://monsite'. This request has been blocked; the content must be served over HTTPS.

Pourtant l'url demandée et le protocole me semblent corrects !

6 réponses

Huggy, il y a 9 ans

Tu préfères une canne à pêche ou un poisson ?
pour la canne à pêche : outils de developpement du navigateur
pour le poisson : fais un console.log(window.location.protocol) pour voir si c'est bien 'https:' qui est retourné

keulu, il y a 9 ans

ouais j'allais dire pareil. tu es en https et tu essaye de charger une page en http

ton window.location.protocol doit pas etre juste... (essaye de mettre https:// en dur pour test)

speedounours, il y a 9 ans

"Mixed Content: The page me 'https://monsite' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://monsite'. This request has been blocked; the content must be served over HTTPS. "

provient de l'outil de développement Chrome, le console.log a été fait ainsi que de coder l'adresse https:// en dur

Huggy, il y a 9 ans

As-tu bien vérifié qu'il n'y a pas d'autre requête ajax que celle-ci
sous Chrome : onglet Network -> XHR -> colonne Scheme (à rajouter)

speedounours, il y a 9 ans

Salut, J'ai résolu mon problème.
Chrome : onglet Network -> XHR -> colonne Scheme m'a aidé à trouver ce qui ne fonctionnait pas
Merci !

Dionyzos, il y a 8 ans

Salut Skuud,

Pourrais-tu nous donner ta solution que cela puisse aider ceux qui ont rencontré le même problème.

Merci ;-)