AngularJS $ http продолжает добавлять косую черту только к одному из моих URL - PullRequest
0 голосов
/ 05 июня 2018

Я напрямую использую сервис angularjs $http для взаимодействия с моим API только в одном из случаев. HTTP-сервис добавляет косую черту в мой URL, превращая http://localhost:4845/api/autocomplete?subject=committee в http://localhost:4845/api/autocomplete/?subject=committee, в других случаях он работает нормально, без измененияданный URL, и я не могу выяснить причину

Это код angularjs, я не использую никаких других модулей / служб / перехватчиков

$http.get('http://localhost:4845/api/autocomplete?subject=committee');

Когда я перехватываю запрос нана сервере, использующем модуль HTTP, я вижу, что метод context_BeginRequest вызывается три раза для одного и того же запроса, первый раз без косой черты два раза с ним.

Нет проблем с другими подобными запросами.

API - это ASP.NET WebApi 2 на IIS

1 Ответ

0 голосов
/ 05 июня 2018

После нескольких часов исследования я все еще не знаю, что происходит, но я мог бы решить эту проблему, на самом деле эта проблема не связана с угловыми, угловыми вызовами ресурса /api/autocomplete, но происходит то, что естьпапка на сервере с точным путем в качестве ресурса, который я запрашиваю , поэтому сервер каким-то образом изменяет запрос ресурса /api/autocomplete на запрос папки /api/autocomple/.

Если вы отлаживаетеangularjs вы увидите это точно так же, как после вызова xhr.send на вкладке сети в инструментах отладчика мы можем увидеть правильный вызов /api/autocomplete в состоянии ожидания, но через некоторое время он изменится на /api/autocomplete/ с результатом 403 (запрещено)

Изменение имени папки или ресурса решит эту проблему

Такое поведение наблюдается в IIS Express

...