Comment faire une requête AJAX HTTPS GET en utilisant jQuery
Comment puis-je explicitement faire une requête AJAX HTTPS GET en utilisant jQuery? Je suis en train de faire la suite.
Sur une page https, j'ai une ligne avec le code $.get("/resource")
, mais j'obtiens l'erreur suivante
XMLHttpRequest cannot load http://www.site.com/resource. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://www.site.com' is therefore not allowed access.
pourquoi L'appel AJAX tente-t-il d'accéder à la page en utilisant le protocole HTTP si la ressource relative provient d'une page https? Si l' $.la méthode get(url) fait cela par défaut, comment utiliser jQuery pour faire une requête explicite HTTPS GET? Une autre personne, qui avait un problème similaire, à http://forum.jquery.com/topic/jquery-get-ajax-call-on-http-page-to-https-on-same-domain n'a pas pu le résoudre.
<!-La Version jQuery est 1.7.24 réponses
j'ai corrigé le problème. Il s'est avéré qu'en raison de la façon dont notre site Django a été configuré, j'avais besoin d'ajouter une barre oblique à la ressource dans la requête AJAX. Sans le slash, Django serait alors redirection à L'URL avec la barre oblique de queue en utilisant une requête HTTP au lieu d'une requête HTTPS.
En bref, j'ai remplacé $.get("/resource")
$.get("/resource/")
.
je vous Remercie. J'apprécie vraiment votre aide.
si la page sur laquelle vous êtes est une page https, et la page .get essaie d'accéder à http, alors cela ne fonctionnera pas à cause de la même origine. Toutefois, vous pouvez simplement écrire l'ajax au lieu de court remise avec .obtenir :)
$.ajax({
type: "GET",
url: "https://someurl"
});
bien que je suppose être juste, c'est encore un court de javascript vrai
essayez de configurer le type de données en "jsonp", cela m'a aidé dans le passé avec les requêtes de cross-origin.
$.ajax({
url: "//www.site.com/resource"
dataType: "jsonp",
success: function(data) {
$(".demo-card").html(data);
}
});
il suffit d'utiliser RewriteRule dans votre .fichier htaccess avec le protocole spécifié, par exemple:
RewriteCond %{REQUEST_URI} .+[^/]$
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L,QSA]