2016-05-18 68 views
0

我的JavaScript方法 -傳遞複雜的對象,以從角JS網頁API,它總是返回404

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; 
     }); 


    } 
} 

});

我的網頁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 但一些如何它不是爲我工作。

+0

它是交叉原點嗎? –

+0

一個愚蠢的問題,但你的前端和後端運行在同一個實例和端口?不應該像這樣$ http.post(apiHost +'/ api/VisitorWeb/VerfiyLogin'.. – MayK

+0

@ YinGang-它不是交叉所有東西都在同一個web項目中 – ankur

回答

2

我覺得你這裏有一個錯字:

$http.post(
      '/api/VisitorWeb/VerfiyLogin', 
      JSON.stringify(loginModel), 
      { 
       headers: { 
        'Content-Type': 'application/json' 
       } 
      } 

您的服務方法被命名爲VerifyLogin,而不是從我所看到的VerfiyLogin。

+0

你讓我,這是錯誤的問題,現在它正在工作。 – ankur