Я новичок в угловом.
Я не могу вызывать методы POST, PUT и DELETE, используя angular (GET работает нормально). У меня есть сервер .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':'application/x-www-form-urlencoded', я пробовал вообще без конфигурации, я пробовал с успехом и ошибкой, и я пробовал с атрибутами команды и данных.
Я ничего не получаю, и во время отладки errResponse содержит только данные запроса. Проверил вкладку сети в инструментах разработчика и обнаружил, что возвращается ошибка 405. Опять же, все URL-адреса действительны и протестированы с использованием стороннего клиентского приложения REST.
Кто-нибудь может помочь?
РЕДАКТИРОВАТЬ: 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>
ПОСТАВИТЬ пример:
[HttpPut]
[Route("api/users/{id}")]
public IHttpActionResult updateUser(int id, User user)
С уважением, Идо
[HttpPut]
отSystem.Web.Http
? (Не отSystem.Web.Mvc
) - person Hanlet Escaño   schedule 06.08.2016