• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

res.redirect() nie przekierowuje strony

0 głosów
111 wizyt
pytanie zadane 12 października w JavaScript, jQuery, AJAX przez Frozenfroggie Użytkownik (860 p.)
edycja 12 października przez Frozenfroggie

Witam, piszę apke to tworzenia ankiet, i potrzebuję zrobić przycisk który pozwoli na usunięcie danej ankiety i przekierowanie na stronę główną. Zrobiłem więc button który onclick będzie wysyłal zapytanie do serwera metodą DELETE, natomiast ID ankiety jest przesyłane w URL.

Plik public/show_poll.hbs

var deleteUrl = location.origin + '/polls/' + '{{{id}}}' + '/delete';
var redirectUrl = location.origin;
function deletePoll() {
  var xhr = new XMLHttpRequest();
  xhr.open('DELETE', deleteUrl, true);
  xhr.onload = function () {
    if (xhr.readyState === 4 && xhr.status === 200) {
      console.log(xhr.response);
    } else {
      console.error(xhr.response);
    }
  }
  xhr.send();

Natomiast po stronie serwera użyłem metody Mongoose findByIdAndRemove(), po czym za pomocą res.redirect() próbowałem przekierować na stronę główną:

Plik app/routes/index.js

app.route('/polls/:id/delete')
	.delete(isLoggedIn, function(req,res) {
		 Polls.findByIdAndRemove(req.params.id, function(err, data) {
		    if(err) {
		      res.status(400).json({responseText: "server- Oops! Something went wrong."});
		    } else {
		    	console.log("Data deleted: " + data);
                res.redirect("/");
		    }
		});
	});

Niestety z jakiegoś powodu strona się nie reloaduje, widzę w narzędziach dla programisty (w zakładce Network), że strona startowa jest załadowana a jednak się nie odświeża. Z problemem poradziłem sobie dopiero poprzez przekierowanie na stronę główną po stronie klienta poprzez:

window.location.replace(redirectUrl);

Moje pytanie brzmi: dlaczego strona się nie przekierowuje za pomocą res.redirect? Początkowo myślałem, że jest to związane z metodą DELETE, bo z tego co czytałem to działa trochę inaczej niż POST i przy przekierowaniu metoda nie przestawia się automatycznie na GET, jednakże zmiana zapytania na POST także nie pomogła. Ma ktoś jakiś pomysł, wskazówki, rady, cokolwiek?

www: https://voter-fcc.herokuapp.com

github: https://github.com/frozenfroggie/voting-app

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 80 wizyt
+1 głos
1 odpowiedź 194 wizyt
0 głosów
1 odpowiedź 65 wizyt
pytanie zadane 26 czerwca w JavaScript, jQuery, AJAX przez Bartlomiej Bywalec (2,480 p.)

42,405 zapytań

81,706 odpowiedzi

162,161 komentarzy

20,354 pasjonatów

Przeglądających: 267
Pasjonatów: 9 Gości: 258

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...