2014-02-19 5 views
1

각도의 공장에서 아약스의 게시물 요청을 사용하고 있습니다 ... 아약스 성공 함수를 제외한 모든 것이 잘 작동합니다 ... 성공 함수에서 볼 수 있습니다. 다른 페이지로 이동해야합니다. . (logout.html) ..하지만 아약스의 성공 기능은 문제가 어떤 도움 무엇 내가 잘 모릅니다 ,, 로그인 버튼을 두 번 클릭 한 후 두 번째 페이지에 저를 로그인하시기 바랍니다 각 공장에서아약스 성공 함수 두 번째 클릭에 대한보기 반환

내 아약스 호출

demoapp.factory("authser", function ($location) { 
    return { 
     login: function (credantials) { 
      if (credantials.username != "jot") { 
       alert("its "); 
      } 
      else { 
       $.ajax({ 
        url: "/valued/newvalue", 
        type: 'POST', 
        data: { 'name': credantials.username, 'password': credantials.password }, 
        dataType: "json", 
        success: function (data) { 
         console.log(data); 
         $location.path('/logout'); 

        } 
       }); 
      } 
     }, 
     logout: function (data) { 
console.log(data); 

      $location.path('/hello'); 
     } 
    } 
}) 

내 컨트롤러

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 

namespace angulardata.Controllers 
{ 
    public class valuedController : Controller 
    { 
     // GET: /valued/ 
     [HttpPost] 
     public ActionResult newvalue(string name, string password) 
     { 
      var res = new {Success="True",Message="Error MEssage" }; 
      return Json(res); 
     } 

    } 
} 
+0

무엇입니까 '컨트롤러가 나에게 두 번째 페이지의 view'를 제공? 매우 자세한 설명을 해주십시오. –

+0

이 질문은 18 분 전에 요청한 [this one] (http://stackoverflow.com/questions/21872015/ajax-requests-success-function-works-on-second-click)과 어떻게 다른가요? – jfriend00

+0

now rowan을 참조하십시오 –

답변

1

$.ajax 대신에 각도 다이제스트주기를 트리거하는 서버를 호출하기 위해 $http 각도 서비스를 사용해보십시오.

demoapp.factory("authser", function ($location,$http) { 

//

$http({ 
    method: 'POST', 
    url: "/valued/newvalue", 
    responseType: "json", 
    data: { 'name': credantials.username, 'password': credantials.password } 
}).success(function (data) { 
    console.log(data); 
    $location.path('/logout'); 
}); 
+0

콘트롤러 측에 변경이 필요합니다 –

+0

시도했지만 콘솔에 $ http가 정의되어 있지 않습니다. –

+0

의존성으로'$ http'가 필요합니다. 내 편집을 참조하십시오. –