14 / 12 / 3
Регистрация: 20.02.2018
Сообщений: 446
|
|||||||||||
1 | |||||||||||
Не проходит запрос на API контроллер на IIS - ошибка 400, на IISExpress запросы проходят26.07.2021, 07:08. Показов 5669. Ответов 12
Здравствуйте!
Проблема с прохождением запросов из вне на api-контроллеры. Очень нужна помощь! Проект ASP NET CORE MVC 3. Сервер IIS10. Представления изначально отображаются с помощью контроллеров mvc. Везде где задействованы mvc контроллеры - все работает и на IISExpress и на IIS после деплоя. Часть функционала у меня работает через api-контроллеры, функции JS у меня отправляют запрос на api-контроллеры, и вот API контроллеры после публикации не работают, если запрос идет из вне - выдает ошибку:
Изначально он ещё выдавал ошибку: По советам в интернете пробовал чистить куки, отключать брендмауер, отключать антивирусник - не помогло. Подскажите пожалуйста, где может быть ошибка? Что нужно посмотреть?
0
|
26.07.2021, 07:08 | |
Ответы с готовыми решениями:
12
Net core и Яндекс Directory API - не проходят PATCH запросы Vk api ошибка "(400) Недопустимый запрос" GET-запрос Twitter API: не проходит авторизация Ajax запрос на контроллер web api core |
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
|
|
26.07.2021, 09:54 | 2 |
Volodya_,
.. это может быть связано с настройками CORS на сервере ... хотя 400 Bad request прямо к CORS не относится, но POST запрос из JS сначала отправляет запрос типа OPTION, а поскольку CORS его блокирует, ну и т.д. ....
1
|
14 / 12 / 3
Регистрация: 20.02.2018
Сообщений: 446
|
|
26.07.2021, 12:42 [ТС] | 3 |
0
|
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
|
|
26.07.2021, 15:13 | 4 |
... поскольку сам я IIS давно не пользуюсь, то вы сможете по запросу IIS CORS сами нагуглить много чего, но базово:
Enable Cross-Origin Requests (CORS) in ASP.NET Core IIS CORS module Configuration Reference ... и посмотрите запрос в Инструментах разработчика в браузере, а еще лучше - в Fiddler-e, отправляет ли ваш JS запрос OPTION перед непосредственно POST (так по идее должно быть) ...
1
|
14 / 12 / 3
Регистрация: 20.02.2018
Сообщений: 446
|
|
26.07.2021, 15:40 [ТС] | 5 |
0
|
14 / 12 / 3
Регистрация: 20.02.2018
Сообщений: 446
|
|
27.07.2021, 12:09 [ТС] | 6 |
Проверил в Startip.cs в Configure, там CORS не включен, получается у меня в сервисе его нет и блокировать он не может.
Прочитал ещё, что вроде OPTIONS-запрос при простых запросах не обязателен, но в ответе от сервера, если работает CORS, другого домена должен быть заголовок Access-Control-Allow-Origin, который должен содержать разрешённый источник, по идее тот, что в заголовке Origin (в моем случае http://195.226.ххх.хх), но в заголовке Origin у меня домен моего сервера, и уже получается, что это не междоменный запрос и источник==сервер. Вот тут я уже запутался. Ещё момент, что в какие-то первые запуски приложения этой ошибки (400) не было, а потом после ряда изменений и новых запусков появилась. Но изменений связанных с маршрутизацией никаких не вносил, всё вроде было по алгоритмам
0
|
1514 / 905 / 328
Регистрация: 17.05.2015
Сообщений: 3,417
|
|
27.07.2021, 14:14 | 7 |
Volodya_, а устанавливали .NET 5 Hosting Bundle?
0
|
14 / 12 / 3
Регистрация: 20.02.2018
Сообщений: 446
|
|
27.07.2021, 14:54 [ТС] | 8 |
0
|
1514 / 905 / 328
Регистрация: 17.05.2015
Сообщений: 3,417
|
|
27.07.2021, 15:00 | 9 |
Volodya_, попробуйте разместить пустой сайт, будет работать или нет.
Просто непонятно проблема в вашем коде или iis
0
|
14 / 12 / 3
Регистрация: 20.02.2018
Сообщений: 446
|
|
27.07.2021, 15:34 [ТС] | 10 |
У меня и не пустой сайт работает
0
|
19 / 17 / 3
Регистрация: 11.05.2018
Сообщений: 165
|
|||||||||||
02.08.2021, 19:01 | 11 | ||||||||||
Метод не может десереализовать ваш объект
переделайте так, и проверьте свойства класса
0
|
14 / 12 / 3
Регистрация: 20.02.2018
Сообщений: 446
|
|
02.08.2021, 20:54 [ТС] | 12 |
Не, там была проблема в анотации [ValidateAntiForgeryToken]. API контроллеры не работают с [ValidateAntiForgeryToken] как mvc контроллеры.
0
|
03.08.2021, 06:00 | 13 |
0
|
03.08.2021, 06:00 | |
03.08.2021, 06:00 | |
Помогаю со студенческими работами здесь
13
Как написать POST запрос на стандартный контроллер API В Spring-Security проходит ГЕТ-запрос, но не проходит ПОСТ-запрос На англоязычном IIS 5 не проходят русские тексты из базы. Зачем нужен контроллер API если есть контроллер MVC? Post запросы не проходят Не проходят POST запросы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |