2016-03-15 14 views
13

Używam jonowego frameworka i angularjs Używam chrome do przeglądania moich logów, ale tutaj robię stronę logowania Próbuję opublikować dane wprowadzone przez użytkownika, aby służyć, ale Otrzymuję ten błąd jak.XMLHttpRequest nie ładuje się i odpowiedź dla preflight ma niepoprawny kod stanu HTTP 405

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

i ten jest następny błąd XMLHttpRequest cannot load http://aflaree.com/qrcodeservice/Service1.svc/login Response for preflight has invalid HTTP status code 405 po przeczytaniu jakiegoś bloga I postać jest rozbudowa CORS zz który umożliwia żądanie ajax próbowałem to również, ale nie jestem w stanie znaleźć, dlaczego to dwa błąd pojawia. tutaj jest mój kod

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

mój kod działają poprawnie w urządzeniu, ale ja dostaję błąd w chromie jeśli ktoś wie dlaczego pomóż mi

+0

Czy udało Ci się rozwiązać ten problem? Stoję w obliczu tego samego. – TechTurtle

+0

Tak, został rozwiązany –

+1

Czy mógłbyś podzielić się poprawką? – TechTurtle

Odpowiedz

15

CORS faktycznie określa, że ​​dwa wnioski powinny być wykonane z serwerem w wywołaniu AJAX (jeśli obowiązują pewne warunki, takie jak wysyłanie niestandardowych nagłówków).

Pierwsze żądanie (to z metodą OPTIONS) nazywa się przed lotem i służy do sprawdzenia, czy można bezpiecznie wysłać pełne żądanie na serwer. Odpowiedź z serwera powinna zawierać prawidłowy nagłówek Access-Control-Allow-Origin zawierający adres URL klienta lub *.

Twój serwer (a nie klient) jest tym, który musi obsługiwać CORS. Wygląda na to, że korzystasz z .Net, więc możesz chcieć rzucić okiem na here na temat konfiguracji usług IIS.

Możesz przeczytać więcej o CORS here.

+2

dziękuję za odpowiedź yorch Mam dane w pliku web.config, ale wciąż mam te same problemy. –

+0

Dodałem część konfiguracyjną do sieci .config, ale nadal może naprawić błąd. –

+0

Co zrobić, jeśli ktoś musi trafić na API innej firmy? – kushalvm

13

Jeśli używasz chrome, pobierz wtyczkę "Allow-Control-Allow-Origin". Pozwoli to zignorować wszystkie błędy CORS.

Działa na urządzeniach mobilnych, ponieważ jonik ma wtyczkę cordova "cordova-plugin-whitelist". W twoim "config.xml" domyślnie zobaczysz linię, co oznacza, że ​​twoja aplikacja ma dostęp do dowolnego adresu URL.

Niestety podczas testowania za pomocą przeglądarki wtyczka cordova nie jest aktywna.

0

W przypadku urządzeń z systemem iOS sprawdź również używany protokół. Użycie protokołu HTTPS zamiast protokołu HTTP rozwiązało problem.

Powiązane problemy