Ściąganie źródła strony z internetu przy pomocy funkcji XMLHttpRequest()

Ściąganie źródła strony z internetu przy pomocy funkcji XMLHttpRequest()
GA
  • Rejestracja:około 17 lat
  • Ostatnio:2 miesiące
0

Mamy sobie kod:

Kopiuj
<!DOCTYPE html>
<html>
<body>
<script>
function LadujZawartoscStronyURL(url) {  
 var req = new XMLHttpRequest();
 req.open('GET', url, true);
 req.send(null);
 if(req.status == 200){
     return req.responseText;
 }else{
     return null;
 }
}
alert(LadujZawartoscStronyURL('https://www.google.pl'));
</script>
</body>
</html>

Pytanie, dlaczego ten kod nie działa, a powinien, i jak go poprawić? A powinien wyświetlić się alert ze źródłem strony!

edytowany 4x, ostatnio: gabus
Haskell
  • Rejestracja:prawie 10 lat
  • Ostatnio:12 miesięcy
  • Postów:4700
1

Powodów może być wiele. Pierwsze co się rzuca w oczy to parametr true w funkcji open, która sprawia, że kod wykonuje się asynchronicznie, czyli funkcja zwraca rezultat bez oczekiwania na zakończenie działania.


Zaglądali do kufrów, zaglądali do waliz, nie zajrzeli do d**y - tam miałem socjalizm. Czesław Miłosz
DE
Dodałbym jeszcze CORS policy
MM
  • Rejestracja:ponad 4 lata
  • Ostatnio:8 miesięcy
  • Postów:7
0

Większość stron nie pozwoli Ci się do siebie dobić przy pomocy JS XMLHttpRequest(), przez CORS policy. Takie rzeczy robi się np pythonem (request + BeautifulSoup4 jeśli chcesz później coś z tego kodu wyciągnąć) - lub oczywiście dowolną inną technologią to umoliwiającą.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.