我是棱角分明的新人。
我无法使用angular调用POST,PUT和DELETE方法(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");
}
);
};
我尝试使用'内容类型':' application / x-www-form-urlencoded',我尝试了没有配置,我尝试了一个成功和错误我尝试了一个whith命令和数据属性。
我什么也没收到,在调试时,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>
PUT示例:
[HttpPut]
[Route("api/users/{id}")]
public IHttpActionResult updateUser(int id, User user)
此致 IDO
答案 0 :(得分:0)
将此代码段添加到web.config应解决问题:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDAVModule" />
</modules>
</system.webServer>