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
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 .
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.
Pour les appareils iOS, vérifiez également le protocole utilisé. Utiliser HTTPS au lieu de HTTP a résolu le problème pour moi.