【发布时间】:2016-09-14 21:13:30
【问题描述】:
我的javascript方法-
visitorApp.controller('LoginController', function ($scope,$http) {
$scope.submit = function (isValid) {
if (isValid) {
var loginModel = {
UserName: $scope.UserName,
PassWord: $scope.Password
};
$http.post(
'/api/VisitorWeb/VerfiyLogin',
JSON.stringify(loginModel),
{
headers: {
'Content-Type': 'application/json'
}
}
).success(function (data) {
alert("Hi" +data);
$scope.message = data;
});
}
}
});
我的 web api 方法 -
[HttpPost]
public UserLoginDomainModel VerifyLogin(UserLoginDomainModel loginModel)
{
//do some business logic
return loginModel;
}
我的 webapiconfig 文件
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}"
);
}
}
我收到来自服务器的 404 响应。
"NetworkError: 404 Not Found - http://localhost:43516/api/VisitorWeb/VerfiyLogin"
我试图点击这个链接 POSTing from Angular to .net WebAPI 但有些方法对我不起作用。
【问题讨论】:
-
是否跨域?
-
一个愚蠢的问题,但是您的前端和后端在同一个实例和端口上运行?不应该像这样 $http.post(apiHost+ '/api/VisitorWeb/VerfiyLogin' ..
-
@YinGang- 它不是跨域的。一切都在同一个网络项目中
-
@MayK- 它在同一个端口上运行。
-
@MayK- 是否必须在 uri 中提供 localhost 端口,否则将永远无法工作?
标签: javascript angularjs asp.net-web-api