2013-05-18 29 views
11

Tôi đang sử dụng Expressjs làm API và tôi đang sử dụng góc để nhấn POST đó. Tôi muốn trả lời chuyển hướng thể hiện đang gửi. Thành công từ bài đăng Angular POST của tôi trả lại HTML của trang mà tôi định chuyển hướng đến nhưng không có gì xảy ra trên DOM của tôi. Tôi có thể thấy rằng chuyển hướng của tôi đang hoạt động trong lưu lượng truy cập mạng của tôi và dữ liệu console.log đó, bên dưới chứa DOM của trang được chuyển hướng.Xử lý chuyển hướng nhanh từ Angular POST

Làm cách nào để làm mới DOM, để phản ánh POST thành công này hoặc xử lý "chuyển hướng"?

góc Mã sản phẩm:

$http({method: 'POST', url: '/login', data:FormData}). 
     success(function(data, status, headers, config) { 
     console.log(data) 
    }). 
     error(function(data, status, headers, config) { 
    }); 

    $scope.userName = ''; 

Expressjs API:

app.post('/login', function(req, res){ 

     var name = req.param('name', null); // second parameter is default 
    var password = req.param('password', "changeme") 

    // Lots Authenticationcode 
    // returns succesfful login 
    res.redirect('http://localhost:3000/'); 

    }); // end app.post 

console.log (dữ liệu) (từ thành công POST góc)

returns the HTML of the page I intended to redirect to 

Trả lời

14

AngularJS có nghĩa là để làm việc như một khuôn khổ phía máy khách cùng với các API RESTfull (chủ yếu). API đăng nhập của bạn không phải trả lại HTML, nó được cho là trả lại lệnh để chuyển hướng. Vì vậy, trong trường hợp của bạn, bạn chỉ cần gọi $location.url('/') trong số $http gọi lại thành công của bạn, sẽ sử dụng bộ định tuyến Angular để "chuyển hướng" đến '/' (URL gốc).

+0

Làm cách nào để phát hiện 'hướng dẫn chuyển hướng' trong Góc? Trong ví dụ của op bằng cách sử dụng Express, hiện Angular phơi bày một số cách phát hiện res.redirect ('/') đến từ máy chủ? – Matt

+0

Tùy thuộc vào nhà phát triển, nhưng trong hầu hết các trường hợp, bạn muốn trả về mã trạng thái 200 (thành công) hoặc 201 (được tạo), trong trường hợp đó bạn chỉ cần đặt lệnh '$ location.url ('/')' trong '$ http 'gọi lại thành công. – Stewie

+3

làm cách nào tôi có thể bắt chước phương thức

cách đăng dữ liệu mà res.redirect hoạt động? – OMGPOP

Các vấn đề liên quan