0 / 0 / 1
Регистрация: 23.10.2009
Сообщений: 22
|
|||||||||||||||||||||
1 | |||||||||||||||||||||
.NET 4.x Client ASP.NET MVC + Angular и Server side ASP.NET WEB.API09.11.2016, 22:26. Показов 3419. Ответов 2
Доброго времени суток!
Не первый день бьюсь над задачей, не могу понять в чем причина. Хочу создать почти HelloWorld решение, для обмена информацией между клиентом и сервером посредством Angular (разные адреса ресурсов). Серверная часть, стандартная функция (как ValuesController) для метода GET и POST, контроллер требует авторизации. Клиентская часть, страница регистрации и авторизации и страница получения данных (метод GET) и страница отправки данных (метод POST). В конфигурации сервера указал разрешение для соединения:
Клиентская часть:
Request: OPTIONS /api/EmployeeAPI HTTP/1.1 Host: localhost:1513 Connection: keep-alive Pragma: no-cache Cache-Control: no-cache Access-Control-Request-Method: GET Origin: http://localhost:16174 User-Agent: Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.35 Safari/537.36 Access-Control-Request-Headers: authorization Accept: */* Referer: http://localhost:16174/Employee/Index Accept-Encoding: gzip, deflate, sdch, br Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4 Response: HTTP/1.1 405 Method Not Allowed Cache-Control: no-cache Pragma: no-cache Allow: GET Content-Type: application/json; charset=utf-8 Expires: -1 Server: Microsoft-IIS/8.0 X-AspNet-Version: 4.0.30319 X-SourceFiles: =?UTF-8?B?QzpcU2l0ZXNcVGVzdFxUZXN0U2RcU291cmNlXFNlcnZlclxhcGlcRW1wbG95ZWVBUEk=?= X-Powered-By: ASP.NET Access-Control-Allow-Origin: http://localhost:16174 Access-Control-Allow-Headers: Content-Type, authorization, Accept, X-Requested-With Access-Control-Allow-Methods: GET, POST Date: Wed, 09 Nov 2016 18:59:34 GMT Content-Length: 108 Ответ сервера: {"Message":"Запрошенный ресурс не поддерживает HTTP-метод "OPTIONS"."} Проблема заключается в том что не могу понять почему отправляется кросс-доменный запрос OPTIONS а обоих случаях что GET что POST а не GET или POST. Если свои заголовки не подключать (authorization для передачи токена) то запрос корректно уходит. Что я делаю не так, в чем проблема?
0
|
09.11.2016, 22:26 | |
Ответы с готовыми решениями:
2
При создании проекта ASP.NET Aplicetion выскакивает сообщение Web server is not running ASP/NET version 1.1 Ошибка VS.Net has detected that the specified Web server is not running ASP.NET version 1.1. ASP.NET Core или ASP.NET MVC ASP.NET или ASP.NET MVC |
2756 / 2059 / 384
Регистрация: 22.07.2011
Сообщений: 7,781
|
|
10.11.2016, 01:17 | 2 |
Тут дело не в asp net , это некоторые браузеры при кросс-доменных запросах делают предварительные проверочные запросы. - из соображений безопасности , на что сервер может отреагировать и дать запрет. если потребуется.
В вашем случае , нужно просто разрешить данный тип запроса , на уровне веб.апи это делается через config.EnableCors из пакета Microsoft.AspNet.WebApi.Cors П.С Если скрипт запроса исполняется в том же домене , не нужно указывать полный адрес , достаточно указать относительный путь.
1
|
0 / 0 / 1
Регистрация: 23.10.2009
Сообщений: 22
|
|
10.11.2016, 08:21 [ТС] | 3 |
Действительно, ответ был прост.
Спасибо за подсказку, перепроверил с предварительными методами, GET и POST работают корректно. Успехов в программировании!
0
|
10.11.2016, 08:21 | |
10.11.2016, 08:21 | |
Помогаю со студенческими работами здесь
3
Посоветуйте пожалуйста литературу ASP.Net web API В чем отличие: создать в VS web-сайт от создания приложения ASP.NET MVC 4? Могу ли я отправить запрос к Web-сервису через SOAP протокол в ASP(не ASP.net)??? Минусы разработки web api на VS2010 c ASP.net MVC4 по сравнению с новыми возможностями ASP.NET и ASP.NET MVC Стоит ли учить asp.net, если скоро станет asp.net core? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |