Я новичок в угловой.Угловой пост, положить, удалить возвращает 405
Я не могу использовать методы POST, PUT и DELETE с использованием угловых (GETs отлично работает) У меня есть сервер .NET WebApi, который работает и протестирован всеми методами и всеми URL-адресами ресурсов с помощью Advanced Rest Client.
Это код:
$scope.updateUser = function() {
var url = 'http://localhost/api/users/' + $scope.selectedId;
$http.put(url, $scope.user,{'content-type' : 'application/json'})
.then(
function(response) {
alert("1");
},
function(errResponse) {
alert("2");
}
);
};
Я попытался с 'Content-Type': 'применение/х-WWW-форм-urlencoded', я пытался, не конфиг вообще, я попробовал один с успех и ошибка, и я попробовал один атрибут команды и данных.
Я ничего не получаю и при отладке errResponse содержит только данные запроса. Проверьте вкладку сети в инструментах разработчика, и я обнаружил, что возвращается 405. Опять же, все URL-адреса действительны и протестированы с использованием стороннего клиентского приложения REST.
Может ли кто-нибудь помочь?
EDIT: web.config:
<system.webServer>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDAVModule" />
</modules>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
</system.webServer>
PUT пример:
[HttpPut]
[Route("api/users/{id}")]
public IHttpActionResult updateUser(int id, User user)
С уважением, идо
Поделитесь методами API, web.config, частями вашего global.asax. Вы дали очень мало кода, чтобы уйти. –
Является ли ваш атрибут '[HttpPut]' 'System.Web.Http'? (Не из 'System.Web.Mvc') –
Добавлен файл web.config и пример –