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

AngularJS - Nie mogę odczytać danych(JSON) wysłanych metodą POST

Object Storage Arubacloud
0 głosów
491 wizyt
pytanie zadane 19 stycznia 2017 w JavaScript przez szustka124 Gaduła (4,380 p.)
edycja 19 stycznia 2017 przez szustka124

Witam

Nie mogę odczytać danych(JSON), wysłanych metodą POST. Odpowiedź odebrana pomyślnie. Wypisanie wysłanych danych zwraca wartość NULL

app.controller('login', function ($scope, $http) {
	
	$scope.submitLogin = function() {
		
		var data = JSON.stringify{
				'login': $scope.login, 
				'password': $scope.password
			});
		
		$http({
			method: 'POST',
			url: '/anyone/php/login.php',
			data: data,
			headers: {'Content-Type': 'application/json'}
		}).then(function(response) {
			
			console.log($scope.login);
			console.log($scope.password);
			
			$scope.output = response.data.text;
			
		}, function() {
			
		});
		
	};
	
});

 

Dane dekodowałem w ten sposób:

$postdata = file_get_contents('php://input');
$request = json_decode($postdata);
echo var_dump($request);

Jest trochę informacji w internecie, jednak żaden sposób nie działa.

Dziękuję za poświęcony czas i pozdrawiam

1 odpowiedź

0 głosów
odpowiedź 21 stycznia 2017 przez ShiroUmizake Nałogowiec (46,300 p.)

Rozdziel metodę na wysyłanie i odbieranie. Obecnie masz tylko odbieranie (POST).Wspóldziel zasoby dla tego controlera.

Bo twój kod wykonuje post, potem odpalasz obiecankę, zakładając, że submitLogin wykona się no i ma odebrać response, skąd ma być ten response? submitLogin nic nie zwraca, dlatego wywala null i zgodnie z twoim założeniem nie ma nic.

 $scope.output = response.data.text;

metoda text dla text/html nie dla JSON. (Patrz nagłówek żądania)

console.log($scope.login);
console.log($scope.password);

Nie będzie działać ,gdyż znajdują się w innym zasięgu niż promise, musisz bindować (gorzej ale bezpieczniej) lub użyć arrow function (fajniejsze, ale na niektórych przeglądarkach nie działa).

Po trzecie, nie używaj tylu funkcji anomimowych!, bo można dostać oczupląsu! :P

I kwiatuszek na końcu:

function() {
             
        });

Co to jest?

komentarz 23 stycznia 2017 przez szustka124 Gaduła (4,380 p.)
Już znalazłem źródło problemu. We właściwym skrypcie PHP zamotałem się przy zasięgu zmiennych. Myślałem, że błąd występuje przy wysyłaniu i odbiorze danych. Ten kod PHP służył mi jedynie do znalezienia problemu. A to na końcu to niedokończona funkcja błędu.

Dziękuję za odpowiedź

Mam jeszcze jedno pytanie. Czemu nie używać funkcji anonimowych, jeżeli nigdy się do nich nie odwołam?
komentarz 24 stycznia 2017 przez ShiroUmizake Nałogowiec (46,300 p.)
Tak ,zgadza się, ale zaciemnia jasność kodu, miałem drobne problemy by znależć odpowiedni scope, dla danej funkcji anomimowej. Fakt, faktem one sę wygodne i potrzebne, a czasami wręcz niezbędnę do prawidłowego działania np: fetch. Jednakże jeżeli, tobie to nie przeszkadza to ok.

Podobne pytania

0 głosów
2 odpowiedzi 441 wizyt
pytanie zadane 28 września 2018 w PHP przez zbrzyzny Nowicjusz (200 p.)
0 głosów
1 odpowiedź 161 wizyt
0 głosów
1 odpowiedź 690 wizyt
pytanie zadane 30 września 2015 w JavaScript przez niezalogowany

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...