Angular 4 вызывает WCF REST дважды - PullRequest
0 голосов
/ 18 марта 2019

Я пишу демонстрационное приложение, которое будет вызывать службу отдыха WCF из моего приложения Angular 4, используя сообщение службы HTTP. Я могу успешно опубликовать свои данные в моем методе обслуживания (operationcontract). Но он вызывает мой сервис два раза, а во второй раз попадает в метод сервиса. В первый раз он просто попадает в файл Global.asax. Это то, как HTTP-пост угловых работает?

Следующим является сервисный звонок:

enter image description here

Ниже приводится договор об операции или способ обслуживания отдыха:

enter image description here

Ниже приводится реализация службы:

enter image description here

Ниже приведен код Global.asax:

Этот код Global.asax получает удар дважды, я не понимаю, почему?

enter image description here

Ниже приведена подробная информация о вкладке «Сеть» панели инструментов Chrome dev. Она дважды вызывает WCF.

enter image description here

Fallowing - это запрос и ответ Chrome Network: Первый звонок, который является «дополнительным» звонком: enter image description here

Второй звонок, то есть почтовый звонок:

enter image description here

1 Ответ

2 голосов
/ 18 марта 2019

Как уже сказал Итан: вы используете CORS. Поэтому веб-браузер сначала вызывает конечную точку с запросом OPTIONS.

НО это не вызовет Rest-API дважды (вы можете проверить это с помощью ведения журнала бэкенда или просто с помощью точек останова в бэкэнде). Я думаю, что ваш интерфейс работает в режиме dev (вы можете проверить это в журнале браузера -> angular создает запись в журнале, если он работает в режиме dev).

В угловом режиме dev двойные проверки каждое взаимодействие с пользователем и (imho) каждый http-вызов в режиме dev для предотвращения синхронизации и "значения, измененные после того, как оно было проверено" - ошибки.

...