2014-02-19 3 views
1

Я использую запрос ajax для отправки на фабрике углов .... все работает отлично, за исключением функции успеха ajax ... вы можете видеть в функции успеха, мне нужно перейти на другую страницу. . (logout.html) .. но функция успеха Аякса войдите меня на вторую страницу после нажатия кнопки Войти в два раза ,, я не знаю, что это проблема любой помощи пожалуйстаajax success function return view on second click

моего Аякс вызов в угловом заводе

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

Как этот вопрос отличается от [этого] (http://stackoverflow.com/questions/21872015/ajax-requests-success-function-works-on-second-click), который вы задали на 18 минут раньше? – jfriend00

+0

теперь смотрите пожалуйста 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' как зависимость. см. мое редактирование. –