在我的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