在我的Web API上我有几个[HttpGet]
函数可以很好地工作,但是在[HttpDelete]
(在同一个控制器上)的函数不起作用,它会返回404错误。404 Rejected-by-UrlScan删除请求
[Authorize]
[RoutePrefix("Users")]
public class UsersController : ApiController
{
[HttpDelete]
[Route("DeleteUser/{ID}")]
public void Delete(int id)
{
_UserRepository.Delete(id);
}
}
在web.config中我有verb
设置为*
:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDAVModule" />
<remove name="FormsAuthentication" />
</modules>
<handlers>
<remove name="WebDAV" />
<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>
</system.webServer>
的AJAX调用:
deleteUser = function (id, callback) {
$.ajax({
url: "../../API/Users/DeleteUser/" + id,
type: "DELETE",
success: function() {
callback;
}
});
}
错误:
HTTP Error 404.0 - Not Found Detailed Error Information Module IIS Web Core Notification MapRequestHandler Handler StaticFile
Error Code 0x80070002
Requested URL https://www.example.com:443/Rejected-By-UrlScan?~/API/Users/DeleteUser/155
Physical Path d:\wr\mySite\example.com\Rejected-By-UrlScan Logon Method Anonymous Logon User Anonymous
所有电话是认证的使用OWIN身份验证和不记名令牌。
在同一页上工作调用的例子:
getUsers = function (callback) {
$.get("../../API/Users/GetUsers/", callback);
}
能有什么原因呢?
您是否可以像其定义一样包含更多的控制器,以及它是否具有任何属性。发送失败请求时也显示原始响应。 – Nkosi
您是否在发送请求时进行身份验证?通知控制器标有'[Authorize]'属性 – Nkosi
显示在生产中工作的一个呼叫 – Nkosi