我正在尝试从root用户的index.html到我的控制器做一个AJAX帖子。但它在firefox控制台中返回404 Not Found。
的index.html:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
</head>
<body>
<script>
$.ajax(
{
url: "api/postData",
type: "POST",
dataType: 'json',
success: function (result) {
console.debug(result);
alert(result);
},
error: function (xhr, status, p3, p4) {
console.debug(xhr);
var err = "Error " + " " + status + " " + p3;
if (xhr.responseText && xhr.responseText[0] == "{")
err = JSON.parse(xhr.responseText).message;
alert(err);
}
});
</script>
</body>
</html>
我的控制器:
namespace MyAPI.Controllers
{
[Route("api/postData")]
public class MyAPIController : ApiController
{
[HttpPost]
public bool Post()
{
return true;
}
}
}
我是否需要在RouteConfig.cs中设置一些内容?
由于
答案 0 :(得分:0)
更新您的AJAX网址以包含方法:
url: "api/postData/Post"
您也可以尝试更改:
type: "POST"
到
method: "POST"
答案 1 :(得分:0)
您的网址不正确。您指定的URL将导致控制器本身。而且,由于您没有默认的index
(GET)方法,您必须为方法本身指定路由:
namespace MyAPI.Controllers
{
[Route("api")]
public class MyAPIController : ApiController
{
[HttpPost]
[Route("postData")]
public bool Post()
{
return true;
}
}
}
这将使您想要的网址成为您当前使用的网址。
Ither选项是删除这两个路线。然后您的网址将为myapi/post
。
查看Documentation以获取更多信息和选项。