0
votes

Politique CORS: NO 'Erreur de serveur interne-Origine' / 500 (Erreur de serveur interne)

Fondamentalement, j'essaie d'obtenir un nom d'utilisateur par ID de la séquelle. Le problème est que je suis soit bloqué avec un problème de Cors ou 500 erreurs de serveur internes en fonction de la réponse (Statut)

CORS et 500 P>

Code du contrôleur h1>
this.notifiedUser = (await UserService.getUserFromUserId({id: UserId})).data


3 commentaires

Le postman n'est pas des cors restreints comme des navigateurs. Implémenter le côté du serveur de middleware Cors


WOW La simplicité de votre explication aide en fait une tonne plutôt que de regarder tous les autres problèmes de Cors liés qui sont expliqués dans une multitude de mots. Merci.


Duplicaté possible de Pourquoi Est-ce que mon javascript reçoit une en-tête "Non" d'accès à l'accès-Control-Autory-Origin "est présent sur la ressource demandée" Erreur lorsque Postman ne le fait pas?


3 Réponses :


-2
votes

Si votre origine provient de Localhost, Chrome bloque généralement n'importe quelle demande de CORS provenant de cette origine.

Vous pouvez installer cette extension:

https://chrome.google .Com / WebStore / Détail / Autoriser-Cors-Access-Control / LHOBAFAHDDGELFFECKKEICBAGINIGINIGINIGEJLF? HL = EN

ou vous pouvez désactiver la sécurité lors de l'exécution de Chrome (ajouter le drapeau):

- Désactiver-web-sécurité


3 commentaires

J'utilise Cors dans Localhost tout le temps sans problème


Je l'ai fait, maintenant le résultat est "indéfini". Y a-t-il un moyen de résoudre ce problème? Quel est le problème du problème maintenant? Merci pour les commentaires!


Localhost n'est en aucun cas spécial quand il s'agit de Cors. La demande est une croix d'origine si le domaine, le protocole ou le port ne correspond pas, et c'est tout.



2
votes

Ainsi, Cors est vraiment vraiment odieux à cet égard, mais il y a une façon assez simple de résoudre ce problème. C'est une fonction de sécurité super utile, bien qu'elle soit frustrante au mieux parfois.

Votre navigateur fait ce qu'on appelle une demande de pré-feu, qui est du verbe HTTP Options code>. Votre navigateur appelle n'importe quelle route que vous souhaitez, mais au lieu de ce que vous avez demandé de faire, il appelle à l'aide d'options code>. Votre serveur doit accepter toutes les voies que le client peut demander avec la méthode code> Options code> et votre serveur doit répondre avec les en-têtes suivants pour être une API à l'origine disponible externe. P>

Access-Control-Expose-Headers: YourHeader,YourHeader3


4 commentaires

Correct, j'utilise Express. Donc, au lieu de cela, je viens de faire cela: var cors = nécessite ('Cors') App.Utilisez (CORS ()). Je crois donc que cette poignée crée des middleware pour la manipulation de Cors via Express. Le problème est tout à fait maintenant, je reçois "indéfini" à la suite de mon res.Send (utilisateur.Ausername).


Splendide! Cela signifie que vous êtes à mi-chemin là-bas. Sur le lien à la fin de ce commentaire, faites défiler la section enfoncée et trouvez la section indiquant Activation de Cors Pre-Vol , et examinez comment il répond à la demande Options . expressjs.com/fr/resources/middleware/cors.html


@charlietfl c'est vrai, ça devrait. Si cela faisait, il ne serait pas exécuté dans des erreurs de Cors, car ils auraient été résolus par le middleware. Je trouve que Cors est l'une de ces technologies très importantes à comprendre et il n'y a pas beaucoup de bonnes explications de ce qui se passe dans les coulisses avec Cors.


Hey merci beaucoup d'homme pour avoir aidé! Je vais plus tard essayer de faire ce que vous demandez et je verrai comment ça se passe



0
votes

D'accord, j'ai donc compris le problème. D'une certaine manière, je n'avais pas eu à traiter avec aucun des trucs de Cors, car je pense que ce n'était pas la principale source du problème.

Ainsi, au lieu d'accéder à mes données de base de données via "GET" et d'obtenir les données en faisant Ceci: xxx

J'ai fait "post" pour obtenir les données et accéder aux données en faisant simplement cette xxx

Cela accède aux données sans avoir à obtenir des informations "sécurisées" à partir de la base de données, mais en accédant aux données de la base de données en obtenant Observateur Informations sur l'objet de la base de données.

Le Observer Object semble être suit , qui traite les données de l'utilisateur à titre d'objet. de données pures.

comparé à une donnée objet , où chaque donnée {...} a des informations utilisateur.

Je ne suis pas sûr que j'utilise les mots corrects, mais ceux-ci sont à l'ex tente de ma compréhension actuelle.


0 commentaires