Je n'arrive pas à comprendre pourquoi mes .htaccess
paramètres d'en-tête ne fonctionnent pas.
.htaccess
Contenu de mon fichier:
Header set Access-Control-Allow-Origin *
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
Header always set Access-Control-Allow-Headers "*"
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
Mais quand je les supprime Header
et les ajoute, index.php
tout fonctionne bien.
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS");
header("Access-Control-Allow-Headers: *");
Qu'est-ce que je rate?
.htaccess
mod-rewrite
rewrite
cors
user1401592
la source
la source
a2enmod headers
Header set
dans ce cas. Si le code est modifié et qu'il définit l'en-tête, le fait qu'Apache fasse unheader add
envoie des en-têtes doubles **. Cela cassera des clients comme Restangular par exemple.Header add Access-Control-Allow-Credentials "true"
Pour mémoire, je rencontrais exactement le même problème et aucune des réponses n'a fonctionné.
J'ai utilisé un outil de vérification des en-têtes: http://www.webconfs.com/http-header-check.php
Je testais avec mon IP (
http://192.0.2.1/upload
) et ce qui est revenu était le suivant:Une redirection s'est produite et la requête AJAX n'honore / ne suit pas les redirections.
Il s'est avéré être la barre oblique manquante à la fin du domaine ( http://192.0.2.1/upload / )
J'ai testé à nouveau avec slash à la fin et j'ai obtenu ceci ci-dessous. Ajout d'une barre oblique dans le script aussi, et cela fonctionnait maintenant.
Utilisez cet outil pour tester si vos en-têtes sont bons et pour dépanner ce qui se passe.
la source
J'ai un hébergement partagé sur GoDaddy. J'avais aussi besoin d'une réponse à cette question, et après avoir cherché autour de moi, j'ai trouvé que c'était possible.
J'ai écrit un fichier .htaccess, je l'ai mis dans le même dossier que ma page d'action. Voici le contenu du fichier .htaccess:
Voici mon appel ajax:
Consultez cet article pour référence:
Le jeu d'en-têtes Access-Control-Allow-Origin dans .htaccess ne fonctionne pas
la source
Soyez prudent sur:
Ce n'est pas du tout judicieux d'accorder l'accès à tout le monde. Il est préférable d'autoriser uniquement une liste d'hôte de confiance connu ...
Cordialement,
la source
J'ai activé les en-têtes de module Apache en-têtes a2enmod, et le problème a été résolu.
la source
sudo a2enmod headers
et un redémarrage l'a fait fonctionner!Essayez ceci dans le .htaccess du dossier racine externe
Attention sur: Header add Access-Control-Allow-Origin "*" Ce n'est pas du tout judicieux d'accorder l'accès à tout le monde. Je pense que vous devriez utiliser:
la source
J'ai attribué +1 à la réponse de Miro pour le lien vers le site de vérification des en-têtes http://www.webconfs.com/http-header-check.php . Il affiche une annonce désagréable chaque fois que vous l'utilisez, mais il est néanmoins très utile pour vérifier la présence de l'en-tête Access-Control-Allow-Origin.
Je lis un fichier .json à partir du javascript sur ma page Web. J'ai trouvé que l'ajout de ce qui suit à mon fichier .htaccess a résolu le problème lors de l'affichage de ma page Web dans IE 11 (version 11.447.14393.0):
J'ai également ajouté ce qui suit à /etc/httpd.conf (fichier de configuration d'Apache):
Le site de vérification d'en-tête a vérifié que l'en-tête Access-Control-Allow-Origin est maintenant envoyé (merci, Miro!).
Cependant, Firefox 50.0.2, Opera 41.0.2353.69 et Edge 38.14393.0.0 récupèrent tous le fichier de toute façon, même sans l'en-tête Access-Control-Allow-Origin. (Remarque: ils peuvent vérifier les adresses IP, car les deux domaines que j'utilisais sont tous deux hébergés sur le même serveur, à la même adresse IPv4.)
Cependant, Chrome 54.0.2840.99 m (64 bits) ignore l'en-tête Access-Control-Allow-Origin et échoue de toute façon, signalant par erreur:
Je pense que cela doit être une sorte de «premier». IE fonctionne correctement; Chrome, Firefox, Opera et Edge sont tous bogués; et Chrome est le pire . N'est-ce pas exactement le contraire du cas habituel?
la source
Après avoir passé une demi-journée sans que rien ne fonctionne. En utilisant un service de vérification d'en-tête si tout fonctionnait. Le pare-feu au travail les dépouillait
la source
essaye ça:
Il est préférable d'autoriser une liste d'hôte de confiance connu.
la source
Si quelqu'un d'autre essaie cela, la réponse la plus votée devrait fonctionner. Cependant, si vous rencontrez des problèmes, il est possible que le navigateur ait mis en cache la DEMANDE. Pour confirmer, ajoutez une chaîne de requête.
la source