2017-09-19 2 views
1

Je veux seulement autoriser les demandes de mon site Web à visiter la page php suivante. Toutefois, toutes les pages sont autorisées sur XAMPP.Access-Control-Allow-Origin permettant l'accès à toutes les pages

Ceci est mon code:

J'utilise un fichier .js pour appeler le fichier php:

// page1.js 

var json_url = "page2.php"; 

$.getJSON(json_url, function(response) { 
    alert("Entered"); 
}); 

Et page2.php:

<?php 

header("Access-Control-Allow-Origin: https://www.mywebsite.com"); 
header("Access-Control-Allow-Credentials: true"); 
header("Content-Type: application/json"); 

// ... 

?> 
+0

S'il vous plaît envisager d'utiliser https://stackoverflow.com/posts/46305617/edit pour éditer/mettre à jour votre question pour indiquer plus explicitement quel problème vous essayez de résoudre - sous une forme comme, * je veux faire XXXX mais il est ne fonctionne pas parce que YYYY. * Que voulez-vous dire par * "toutes les pages sont autorisées sur XAMPP." *? Que signifie exactement * "autorisé sur XAMPP" *? – sideshowbarker

+0

Si je comprends ce que vous essayez de dire, vous voudrez peut-être lire les réponses à https://stackoverflow.com/questions/40835863/in-the-respective-of-security-is-it-meaningful-to- allow-cors-for-specific-domai/40836602 # 40836602 et https://stackoverflow.com/questions/46298760/how-does-enablecors-restrict-the-origin-access/46301772#46301772 pour une explication de ce que fait CORS et ne fait pas réellement – sideshowbarker

Répondre

0

La bonne façon de l'utiliser serait:

Access-Control-Allow-Origin: www.mywebsite.com 

Oui , vous devez spécifier un domaine (les caractères génériques sont autorisés), pas une URL.

Maintenant, que voulez-vous dire par "autoriser les demandes de mon site Web à visiter la page php suivante"? Si vous n'êtes pas le propriétaire de www.remoteserver.com, vous ne pourrez pas effectuer d'appels ajax depuis votre site Web (mywebsite.com) vers www.remoteserver.com à moins que l'en-tête Access-Control-Allow-Origin: www.yourwebsite.com ne soit présent dans leur réponse HTTP (que doute si vous n'êtes pas le propriétaire).

+0

Avez-vous mis à jour la question pour plus de clarté. Je veux que page2.php réponde aux requêtes uniquement depuis www.mywebsite.com (qui est mon domaine). Cependant, il s'exécute actuellement même si les demandes proviennent de l'extérieur de mon domaine. –

+1

Vous n'avez même pas besoin d'envoyer l'en-tête 'Access-Control-Allow-Origin' pour cela. S'il n'est pas présent dans votre réponse HTTP, aucun autre domaine que le vôtre lui-même ne sera capable de faire des appels ajax à page2.php. –

+0

Mais maintenant tout le monde peut rechercher "mywebsite.com/page2.php" et y accéder. Comment puis-je limiter cela aussi, afin que seules mes propres pages de domaine puissent y accéder? –