$http.post 请求在控制器中找不到方法
$http.post request can't find method in controller
我的 Controller:
中有一个 AddCategory() 方法
[RoutePrefix("api")]
public class CategoryController : ApiController
{
....
[Route("addCategory")]
[HttpPost]
public void AddCategory(string category)
{
var getCat = category;
}
在我的 Home.html 我有按钮 保存新类别 我写了 $http.post 方法它:
var testString = "TEST String";
var req = {
method: 'POST',
url: '/api/addCategory',
data: testString,
};
$http(req).then(function successCallback(response) {
console.log("Success");
}, function errorCallback(response) {
console.log("Eror");
});
但是我有下一个错误:
angular.js:11442 POST http://localhost:6059/api/addCategory 404 (Not
Found)
在 网络 书签 开发控制台 我发现了错误:
可能很重要,但我在 WebApiConfig.cs:
中禁用了 XML
var json = GlobalConfiguration.Configuration.Formatters;
json.JsonFormatter.UseDataContractJsonSerializer = true;
json.Remove(json.XmlFormatter);
可能有人知道我该如何更改它?感谢您的回答!
问题与您调用的服务有关,404表示未找到:
因此服务 URL 或您的本地服务器中的某些内容无法正常工作。
您的方法 Post 需要 return IHttpActionResult。或者您的请求 http 总是 return 代码 404。
试试这个:
[RoutePrefix("api")]
public class CategoryController : ApiController
{
....
[Route("addCategory")]
[HttpPost]
public IHttpActionResult AddCategory(string category)
{
var getCat = category;
if(getCat != null)
return Ok();
return NotFound();
}
我建议您使用 Api Rest in C# with $resource angular。在我看来,这是最好的模式。
我的 Controller:
中有一个 AddCategory() 方法[RoutePrefix("api")]
public class CategoryController : ApiController
{
....
[Route("addCategory")]
[HttpPost]
public void AddCategory(string category)
{
var getCat = category;
}
在我的 Home.html 我有按钮 保存新类别 我写了 $http.post 方法它:
var testString = "TEST String";
var req = {
method: 'POST',
url: '/api/addCategory',
data: testString,
};
$http(req).then(function successCallback(response) {
console.log("Success");
}, function errorCallback(response) {
console.log("Eror");
});
但是我有下一个错误:
angular.js:11442 POST http://localhost:6059/api/addCategory 404 (Not Found)
在 网络 书签 开发控制台 我发现了错误:
可能很重要,但我在 WebApiConfig.cs:
中禁用了 XMLvar json = GlobalConfiguration.Configuration.Formatters;
json.JsonFormatter.UseDataContractJsonSerializer = true;
json.Remove(json.XmlFormatter);
可能有人知道我该如何更改它?感谢您的回答!
问题与您调用的服务有关,404表示未找到:
因此服务 URL 或您的本地服务器中的某些内容无法正常工作。
您的方法 Post 需要 return IHttpActionResult。或者您的请求 http 总是 return 代码 404。
试试这个:
[RoutePrefix("api")]
public class CategoryController : ApiController
{
....
[Route("addCategory")]
[HttpPost]
public IHttpActionResult AddCategory(string category)
{
var getCat = category;
if(getCat != null)
return Ok();
return NotFound();
}
我建议您使用 Api Rest in C# with $resource angular。在我看来,这是最好的模式。