web-dev-qa-db-fra.com

XMLHttpRequest ne peut pas être chargé et Response for preflight a un code d'état HTTP non valide 405

J'utilise un cadre ionique et angularjs J'utilise chrome pour afficher mes journaux, mais je fais ici une page de connexion. J'essaie de publier les données entrées par l'utilisateur à servir, mais j'obtiens cette erreur.

 OPTIONS http://aflaree.com/qrcodeservice/Service1.svc/login 

et celui-ci est l'erreur suivante XMLHttpRequest cannot load http://aflaree.com/qrcodeservice/Service1.svc/login Response for preflight has invalid HTTP status code 405 Après avoir lu certains blogs, je pense qu’il existe une extension du CORS à partir de laquelle permet la demande d’ajax que j’ai essayée aussi, mais je ne suis pas en mesure de comprendre pourquoi cette erreur apparaît. voici mon code

https://plnkr.co/edit/Dz0aFsLqoQcnCxht00z3?p=preview

mon code fonctionne bien dans l'appareil mais je reçois une erreur en chrome si quelqu'un sait pourquoi, aidez-moi s'il vous plaît

13
Mohan Gopi

CORS spécifie en fait que deux demandes doivent être adressées au serveur lors d'un appel AJAX (si certaines conditions s'appliquent, comme l'envoi d'en-têtes personnalisés).

La première demande (celle avec la méthode OPTIONS) est appelée pré-vol et est utilisée pour vérifier s'il est prudent d'envoyer la demande complète au serveur. La réponse du serveur doit contenir un en-tête Access-Control-Allow-Origin valide contenant l'URL du client ou *.

Votre serveur (et non le client) est celui qui doit prendre en charge CORS. Il semble que vous utilisiez .Net pour cela, vous voudrez peut-être jeter un oeil ici sur la façon de configurer IIS.

Vous pouvez en savoir plus sur CORS ici .

17
yorch

Si vous utilisez Chrome, procurez-vous le plug-in "Allow-Control-Allow-Origin". Cela vous permettra d'ignorer toutes les erreurs CORS.

Cela fonctionne sur mobile car ionic a un plugin cordova "cordova-plugin-whitelist". Dans votre "config.xml", vous voyez la ligne par défaut, cela signifie que votre application peut accéder à n'importe quelle URL.

Malheureusement, lors du test via le navigateur, le plug-in cordova n'est pas actif.

13
TheAppchemist

Pour les appareils iOS, vérifiez également le protocole utilisé. Utiliser HTTPS au lieu de HTTP a résolu le problème pour moi.

0
Gaurav Barge