Подтвердить что ты не робот

XMLHttpRequest не может загружаться, а для ответа на предполетный период имеет недопустимый код статуса HTTP 405

Я использую ионную структуру и angularjs. Я использую хром для просмотра своих журналов, но здесь я делаю страницу входа. Я пытаюсь опубликовать введенные пользователем данные для обслуживания, но я получаю эту ошибку.

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

и следующая ошибка XMLHttpRequest cannot load http://aflaree.com/qrcodeservice/Service1.svc/login Response for preflight has invalid HTTP status code 405 после чтения какого-то блога я вижу, что есть расширение CORS, из которого разрешен запрос ajax, который я тоже пробовал, но я не могу найти причину появления этой двух ошибок. вот мой код

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

мой код работает нормально в устройстве, но я получаю ошибку в chrome, если кто-нибудь знает, почему, пожалуйста, помогите мне

4b9b3361

Ответ 1

Фактически CORS указывает, что на вызов AJAX должны выполняться два запроса (если применяются определенные условия, например, отправка пользовательских заголовков).

Первый запрос (тот, у кого метод OPTIONS) называется предполетным, и используется для проверки того, безопасно ли отправлять полный запрос на сервер. Ответ с сервера должен содержать допустимый заголовок Access-Control-Allow-Origin, содержащий URL-адрес клиента или *.

Ваш сервер (а не клиент) - это тот, который должен поддерживать CORS. Кажется, вы используете .Net для этого, поэтому вы можете посмотреть здесь о том, как настроить IIS.

Подробнее о CORS здесь.

Ответ 2

Если вы используете хром, подключите плагин "Allow-Control-Allow-Origin". Это позволит вам игнорировать все ошибки CORS.

Он работает на мобильных устройствах, потому что ионный имеет плагин cordova "cordova-plugin-whitelist". В вашем "config.xml" вы увидите строку по умолчанию, это означает, что ваше приложение может получить доступ к любому URL-адресу.

К сожалению, при тестировании через браузер плагин cordova не активен.

Ответ 3

Для устройств iOS также проверьте используемый протокол. Использование HTTPS вместо HTTP решило проблему для меня.