AngularJS可以´;不要从工厂呼叫APIcontroller
我无法从工厂获得API控制器的响应 我发现错误404未找到页面 我在AngularJS可以´;不要从工厂呼叫APIcontroller,angularjs,factory,asp.net-apicontroller,Angularjs,Factory,Asp.net Apicontroller,我无法从工厂获得API控制器的响应 我发现错误404未找到页面 我在HTML文档中找到了正确的.js文件,路由似乎很好 App.js: module.factory('userFactory', function($http) { return { getFormData: function(callback) { $http.get('/api/GetMessage').success(callback); } } }); module.controlle
HTML文档中找到了正确的.js文件
,路由似乎很好
App.js:
module.factory('userFactory', function($http) {
return {
getFormData: function(callback) {
$http.get('/api/GetMessage').success(callback);
}
}
});
module.controller("messageController", function($scope, userFactory) {
$scope.getMessage = function() {
userFactory.getFormData(function(results) {
$scope.text = results;
});
}
});
API控制器:
using System.Web.Http;
namespace kittyChatt.Backend.Controllers {
public class GetMessageController : ApiController
{
public object Get()
{
object obj = "hello world";
return obj;
}
}
}
我想让hello world显示我在视图中按下按钮的时间
视图:
收到我的留言了吗
{{text}}
请帮忙
return {
getFormData: function(callback) {
$http.get('/api/GetMessage/Get').success(callback);
}
}
你忘了告诉你的控制器你想呼叫的动作
默认情况下,操作是HttpPost(是的,我知道,我写了HttpGet,在asp.net mvc中就是这样),但我建议您仍然用正确的动词修饰方法:
[HttpGet]
public object Get()
{
object obj = "hello world";
return obj;
}
编辑,与第一个问题完全没有链接:
引用自asp.net文档:
- 您可以使用以下属性指定HTTP方法:AcceptVerbs、HttpDelete、HttpGet、HttpHead、HttpOptions、HttpPatch、HttpPost或HttpPut
- 否则,如果控制器方法的名称以“Get”、“Post”、“Put”、“Delete”、“Head”、“Options”或“Patch”开头,则按照惯例,该操作支持该HTTP方法
- 如果以上都没有,则该方法支持POST
但是,我仍然认为总是用动词来修饰动作是一个很好的做法。这种做法应该避免无用的讨论;-)
你忘了告诉你的控制器你想呼叫的动作
默认情况下,操作是HttpPost(是的,我知道,我写了HttpGet,在asp.net mvc中就是这样),但我建议您仍然用正确的动词修饰方法:
[HttpGet]
public object Get()
{
object obj = "hello world";
return obj;
}
编辑,与第一个问题完全没有链接:
引用自asp.net文档:
- 您可以使用以下属性指定HTTP方法:AcceptVerbs、HttpDelete、HttpGet、HttpHead、HttpOptions、HttpPatch、HttpPost或HttpPut
- 否则,如果控制器方法的名称以“Get”、“Post”、“Put”、“Delete”、“Head”、“Options”或“Patch”开头,则按照惯例,该操作支持该HTTP方法
- 如果以上都没有,则该方法支持POST
但是,我仍然认为总是用动词来修饰动作是一个很好的做法。这种做法应该避免无用的讨论;-)
你忘了告诉你的控制器你想呼叫的动作
默认情况下,操作是HttpPost(是的,我知道,我写了HttpGet,在asp.net mvc中就是这样),但我建议您仍然用正确的动词修饰方法:
[HttpGet]
public object Get()
{
object obj = "hello world";
return obj;
}
编辑,与第一个问题完全没有链接:
引用自asp.net文档:
- 您可以使用以下属性指定HTTP方法:AcceptVerbs、HttpDelete、HttpGet、HttpHead、HttpOptions、HttpPatch、HttpPost或HttpPut
- 否则,如果控制器方法的名称以“Get”、“Post”、“Put”、“Delete”、“Head”、“Options”或“Patch”开头,则按照惯例,该操作支持该HTTP方法
- 如果以上都没有,则该方法支持POST
但是,我仍然认为总是用动词来修饰动作是一个很好的做法。这种做法应该避免无用的讨论;-)
你忘了告诉你的控制器你想呼叫的动作
默认情况下,操作是HttpPost(是的,我知道,我写了HttpGet,在asp.net mvc中就是这样),但我建议您仍然用正确的动词修饰方法:
[HttpGet]
public object Get()
{
object obj = "hello world";
return obj;
}
编辑,与第一个问题完全没有链接:
引用自asp.net文档:
- 您可以使用以下属性指定HTTP方法:AcceptVerbs、HttpDelete、HttpGet、HttpHead、HttpOptions、HttpPatch、HttpPost或HttpPut
- 否则,如果控制器方法的名称以“Get”、“Post”、“Put”、“Delete”、“Head”、“Options”或“Patch”开头,则按照惯例,该操作支持该HTTP方法
- 如果以上都没有,则该方法支持POST
但是,我仍然认为总是用动词来修饰动作是一个很好的做法。这种做法应该避免无用的讨论;-) api的路由路径正确吗
必须在配置中写入以下内容:
public static void Register( HttpConfiguration config )
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { action = RouteParameter.Optional, id = RouteParameter.Optional }
);
}
api的路由路径正确吗
必须在配置中写入以下内容:
public static void Register( HttpConfiguration config )
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { action = RouteParameter.Optional, id = RouteParameter.Optional }
);
}
api的路由路径正确吗
必须在配置中写入以下内容:
public static void Register( HttpConfiguration config )
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { action = RouteParameter.Optional, id = RouteParameter.Optional }
);
}
api的路由路径正确吗
必须在配置中写入以下内容:
public static void Register( HttpConfiguration config )
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { action = RouteParameter.Optional, id = RouteParameter.Optional }
);
}
在WebApi中,这不是一个动作,而是一个HttpVerb,由其名称推断。因此WebApi知道它是一个Get
,因为方法名以Get
开头。您不需要明确地定义它,但是它们不是,如果我有公共对象Post(){}
,那么这将只响应一个Post请求。thx,我用asp.net文档的引用更新了我的答案。(我也删除了我在评论中所犯的错误)在WebApi中,这不是一个动作,而是一个HttpVerb,它是根据它的名称推断出来的。因此WebApi知道它是一个Get
,因为方法名以Get
开头。您不需要明确地定义它,但是它们不是,如果我有公共对象Post(){}
,那么这将只响应一个Post请求。thx,我用asp.net文档的引用更新了我的答案。(我也删除了我在评论中所犯的错误)在WebApi中,这不是一个动作,而是一个HttpVerb,它是根据它的名称推断出来的。因此WebApi知道它是一个Get
,因为方法名以Get
开头。您不需要明确地定义它,但是它们不是,如果我有公共对象Post(){}
,那么这将只响应一个Post请求。thx,我用一个q更新了我的答案