Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wywoływanie funkcji javaScript, Wywoływanie funkcji js z podstrony - InvalidStateError: XMLHttpRequest
frankiejojo
post 15.02.2020, 09:38:56
Post #1





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 20.07.2014

Ostrzeżenie: (0%)
-----


Witam,
Usiłuję napisać program, który przeładuje mi stronę i uruchomi na tej nowej stronie funkcję, która z kolei umieści fragment kodu.
W skrócie - jak klient zakończy edycję swojej oferty by mógł wrócić do listy swoich ofert.
Mam 3 pliki
- panel.php
- modyfikowanie.php
-listaOfert.php
W pliku panel.php umieszczona jest następująca funkcja js.
  1. function listaOfert(){
  2. var url = "user/listaOfert.php";
  3. var hr = new XMLHttpRequest();
  4. hr.open("POST", url, true);
  5. hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  6. hr.onreadystatechange = function() {
  7. if(hr.readyState == 4 && hr.status == 200) {
  8. var return_data = hr.responseText;
  9. document.getElementById("miejsce").innerHTML = return_data;
  10. }
  11. }
  12. hr.send(); // Actually execute the request
  13. document.getElementById("miejsce").innerHTML = "processing...";
  14. }

Funkcja ta po jej uruchomieniu w miejsce diva "miejsce" umieszcza zawartość pliku listaOfert.php (i działa bez zarzutów)

Drugi plik to modyfiikowanie - tu mamy następującą funkcję:
  1. function lista(){
  2. var miejsce = location.href;
  3. if(miejsce=="http://www.tradebest.pl/panel.php"){
  4. }else{
  5. location.href="http://www.tradebest.pl/panel.php";
  6. }
  7. listaOfert();
  8. }

Ta funkcja sprawdza gdzie jesteśmy i przenosi nas do strony panel.php po czym uruchamia funkcję listaOfert().

I teraz zagwozdka.
Jak uruchamiam funkcję listaOfert będąc w pliku panel.php to działa bez zarzutów,
Natomiast kiedy uruchomię ją będąc w pliku modyfikowanie.php pojawia mi się komunikat
InvalidStateError: XMLHttpRequest has an invalid context.

i nie bardzo wiem jak to poprawić.

Go to the top of the page
+Quote Post
trueblue
post 15.02.2020, 10:08:45
Post #2





Grupa: Zarejestrowani
Postów: 5 799
Pomógł: 1598
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Jeśli przekierowałeś użytkownika na inny URL, to w jaki sposób miałaby się wykonać dalsza część kodu JS?

P.S. Ten if/else da się zastąpić po prostu if. I zamiast porównywać cały URL, sprawdź pathname. Zmienisz domenę i będziesz szukał przyczyny niedziałania.


--------------------
Go to the top of the page
+Quote Post
frankiejojo
post 15.02.2020, 12:18:13
Post #3





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 20.07.2014

Ostrzeżenie: (0%)
-----


<div id="miejsce"></div> w którym ma się ukazać listaOfert.php znajduje się w pliku panel.php.
Z tego powodu wpierw chcę klienta przekierować do pliku panel.php a następnie uruchomić funkcję listaOfert, która wyświetli wewnątrz tego diva żądaną zawartość.
Go to the top of the page
+Quote Post
trueblue
post 15.02.2020, 12:20:04
Post #4





Grupa: Zarejestrowani
Postów: 5 799
Pomógł: 1598
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Dzięki za wyjaśnienie, ale to chyba Ty nie rozumiesz, że kiedy przekierowujesz klienta na inny adres, to dalsza część kodu JS nie wykona się.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 4.04.2020 - 18:22