Ce sujet a été posé plusieurs fois, mais je ne comprends toujours pas quelque chose:
Quand je lis des réponses sur
Pas d'en-tête 'Access-Control-Allow-Origin'
question, il dit un cadre doit être défini sur le serveur demandé afin de permettre plusieurs domaines: add_header 'Access-Control-Allow-Origin' '*';
.
Mais, s'il vous plaît dites-moi pourquoi lorsque vous demandez au facteur (qui est un client), cela fonctionne comme un charme et j'ai une réponse du serveur demandé?
Merci
Réponses:
Comme le commente @Musa, il semble que la raison en soit:
Au fait, voici une extension chrome afin de la faire fonctionner sur votre navigateur (celle-ci est pour chrome, mais vous pouvez la trouver pour FF ou Safari).
Cochez ici si vous souhaitez en savoir plus sur Cross-Origin et pourquoi cela fonctionne pour les extensions.
la source
Si vous utilisez un site Web et que vous remplissez un formulaire pour soumettre des informations (votre numéro de sécurité sociale par exemple), vous voulez être sûr que les informations sont envoyées au site auquel vous pensez qu'elles sont envoyées. Les navigateurs ont donc été conçus pour dire, par défaut, «N'envoyez pas d'informations à un domaine autre que le domaine visité).
Finalement, cela est devenu trop limitatif, mais l'idée par défaut reste toujours dans les navigateurs. Ne laissez pas la page Web envoyer des informations à un domaine différent. Mais ce n'est que la vérification du navigateur. Chrome et Firefox, etc. ont un code intégré qui dit «avant d'envoyer cette demande, nous allons vérifier que la destination correspond à la page visitée».
Postman (ou CURL sur la ligne cmd) n'a pas ces contrôles intégrés. Vous interagissez manuellement avec un site, vous avez donc un contrôle total sur ce que vous envoyez.
la source
CORS
(Partage de ressources inter-origines) etSOP
(Politique de même origine) sont des configurations côté serveur que les clients décident d'appliquer ou non .Liés aux clients
CSRF
attaques.la source
Bien que toutes les réponses ici soient une très bonne explication de ce qu'est cors, la réponse directe à votre question serait à cause des différences suivantes: facteur et navigateur.
Navigateur: envoie un
OPTIONS
appel pour vérifier le type de serveur et obtenir les en-têtes avant d'envoyer toute nouvelle requête au point de terminaison de l'API. Où il vérifieAccess-Control-Allow-Origin
. En prenant cela en compte, l'en-Access-Control-Allow-Origin
tête spécifie simplement quelles ORIGINES CROISÉES sont autorisées, bien que le navigateur par défaut n'autorise que la même origine.Postman: Envoie directe
GET
,POST
,PUT
,DELETE
etc. demande sans vérifier quel type de serveur est et obtenir l' en- têteAccess-Control-Allow-Origin
en utilisant l'OPTIONS
appel au serveur.la source
Généralement, Postman utilisé pour le débogage et utilisé dans la phase de développement. Mais au cas où vous voudriez le bloquer, même du facteur, essayez ceci.
la source
app.js
si vous utiliseznode app.js
pour exécuter le serveur.Utilisez le plugin browser / chrome postman pour vérifier le CORS / SOP comme un site Web. Utilisez plutôt une application de bureau pour éviter ces contrôles.
la source