[英]Unable to retrieve value in AJAX POST call. [Used AJAX, MVC ASP.net, .net framework 4.0]
[英].NET Framework 4.6.2 Unable to hit POST endpoint
我創建了一個 .NET 框架 4.6.2 WEB API,在我的 AuthController 中創建了一個將接受參數的測試端點。 我無法達到這個終點。 我得到的錯誤是:“MessageDetail”:“在與名稱“Test”匹配的 controller 'Auth' 上找不到任何操作。”
端點:
[Route("api/auth")]
[EnableCors(origins: "*", headers: "*", methods: "*")]
public class AuthController : ApiController, IDisposable
{
[HttpPost]
[Route("Test")]
public HttpResponseMessage Test([FromBody] object response)
{
return Request.CreateResponse(HttpStatusCode.OK, "Success");
}
}
我的登錄 Function:
function LogIn() {
InputData = {
UserName: $("#Login_UserName").val(),
Password: $('#Login_Password').val()
};
console.log($("#Login_UserName").val());
console.log(InputData);
$.ajax({
type: "post",
url: 'https://localhost:44393' + '/api/auth/test',
contentType: 'application/json',
data: JSON.stringify(InputData),
success: function (data) {
HideSmokeLoader();
console.log(data);
},
error: function (request) {
console.log(request)
}
});
}
嘗試將 controller 中的 Route 屬性更改為 RoutePrefix。 所以:
[RoutePrefix("api/auth")]
[EnableCors(origins: "*", headers: "*", methods: "*")]
public class AuthController : ApiController, IDisposable
制作了一個新項目並進行了與您一樣的設置。 然后使用 postman 調用端點並得到相同的“未找到操作...”。 Route 屬性是 Action 的完整路徑 - 因此,如果您要調用 https://localhost:44393/Test,您將到達 controller。
像這樣在 Action 本身上添加您的Route
-
[EnableCors(origins: "*", headers: "*", methods: "*")]
public class AuthController : ApiController, IDisposable
{
[HttpPost]
[Route("api/auth/test")]
public HttpResponseMessage Test([FromBody] object response)
{
return Request.CreateResponse(HttpStatusCode.OK, "Success");
}
}
將 [Route("api/auth")] 更改為 [RoutePrefix("api/auth")] 因為 RouteAttribute 放置在 controller 或操作以通過路由直接公開它。 當放置在 controller 上時,它適用於沒有任何 System.Web.Mvc.RouteAttribute 的操作。
RoutePrefixAttribute
使用適用於 controller 內所有操作的路由前綴注釋 controller。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.