Kezdőoldal » Számítástechnika » Programozás » JavaScript, üres válasz GET...

JavaScript, üres válasz GET Request-re?

Figyelt kérdés

Sziasztok! Az alábbi kérdésben leírtam, hogy pontosan mit szeretnék elérni:

https://www.gyakorikerdesek.hu/szamitastechnika__weblapkeszi..


A lényeg az, hogy egy másik oldalról kéne egy rövid szöveget kiíratnom a saját weboldalamra. A szöveg változik attól függően, hogy a felhasználó mit ír be (example.com/felhasznalo-altal-megadott-adat). Az egész oldal (Ahonnan a szöveget szeretném kiíratni) egy <body>Szöveg</body> tag-ból áll.


A probléma az, hogy miután bekérem az információt a honlapról, üres választ kapok vissza. 200-as kód, minden rendben, de semmilyen információt nem kapok vissza. Természetesen ha manuálisan próbálom meg a linket, tökéletesen működik.


A kódom: [link]

(Természetesen nem example.com-mal próbálom és nem InputForInformation-höz hasonló ID-kat használok a valós kódban :D)


2023. jan. 13. 13:23
 1/9 anonim ***** válasza:
100%
Az inputForInformation html elem értéke üres, nem? Azt adod át a kérésnek, szóval ha minden igaz akkor a / kéred le, nem az ID-nek megfelelőt
2023. jan. 13. 16:38
Hasznos számodra ez a válasz?
 2/9 A kérdező kommentje:

Köszönöm a válaszod!


Igen, üres - amíg a felhasználó be nem ír valamit. Miután beírt valamit, azt fogja elküldeni.

2023. jan. 13. 17:09
 3/9 anonim ***** válasza:
100%

Igen bocsi, benéztem kicsit a típusát

Az inputot ki tudtam próbálni, az jó

A szerver része jó, mert linkről működik

Szóval a fetch része marad, ami valamiért nem jó. A válaszban hol nézted meg, hogy nincs benne az info? A böngészőkben a debug eszközöknél van olyan, hoyg network, ahol nyomon lehet követni a lekéréseket, ott se látszik az info, csak a 200-as visszatérési kód? Vagy akár wiresharkban is meg lehet nézni, hogy mi a különbség a linkes lekérés és a kódból lekérés között (mondjuk akkor valószínűleg sima http-n keresztül).

Egyébként, a domain ahol ez a kód fut megegyezik azzal a domain-nel, ahonnak lekéred az infót? Lehet emiatt blockolja pl. reklámblokkoló, vagy esetleg a same-origin-policy? Bár akkor valszeg nem 200-as lenne a kód

2023. jan. 13. 17:21
Hasznos számodra ez a válasz?
 4/9 anonim ***** válasza:
100%

Igen alapvetően működik, de ha más domanen van a js kód és a lekért oldal domain-ja akkor alapból blokkolva lesz a hozzáférés.


A "mode: 'no-cors'" varázsütésre nem fogja a dolgokat működésre bírni. Valójában ez ront a dolgokon, mert olyan hatása van, hogy a szőnyeg alá sepri, ha CORS-hiba van. Azt adja vissza a böngésző , hogy 200-as státuszkód (tartalmat nem kapsz így sem). Ezt viszont soha nem akarod.


"Enélkül a weboldal viszautasítja a kérelmememet."


Valójában klines oldalon történik a visszautasítás, de ez csupán klines oldali js kóddal nem orvosolható. Mivel ha orvosolható lenne akkor értelmét vesztené a biztonsági okokból így beépített védelem.


Ha ilyen hozzáférés kell akkor a lekérdendő site-ról szerver oldalról jelezni kell ezt a klines részére Access-Control-Allow-Origin fejléccel : [link]

2023. jan. 14. 00:32
Hasznos számodra ez a válasz?
 5/9 A kérdező kommentje:

#3, #4 - Köszönöm a válaszod!


"A válaszban hol nézted meg, hogy nincs benne az info?"

A kódban van egy rész, ami kiíratja Debug Console-ba a kapott adatot "Logged XYZ", annyit látok csak, hogy Logged, adat nincs.


"A böngészőkben a debug eszközöknél van olyan, hoyg network, ahol nyomon lehet követni a lekéréseket, ott se látszik az info, csak a 200-as visszatérési kód?"

Pontosan.


"Egyébként, a domain ahol ez a kód fut megegyezik azzal a domain-nel, ahonnak lekéred az infót?"

Nem, külső honlapról próbálom bekérni az adatot.


"Ha ilyen hozzáférés kell akkor a lekérdendő site-ról szerver oldalról (...)"

Felvettem a kapcsolatot a honlap üzemeltetőjével ezzel kapcsolatban, válaszként megkaptam az oldal forráskódját, illetve egy PHP kódot:

[link]


Hogyan tudnám JavaScript-el lefuttatni azt? WordPress-t használok. Melyik könyvtárba érdemes feltölteni és hogyan érdemes hivatkozni rá?


Köszönöm szépen :)

2023. jan. 14. 13:07
 6/9 anonim ***** válasza:

"#3, #4 - Köszönöm a válaszod!"

Szívesen. A 4-es hozzászóló én vagyok és ez az az első hozzászólásom ehhez (3-as nem én vagyok).


"Nem, külső honlapról próbálom bekérni az adatot."

A szabványos az lenne, ha az a külső oldal jelezné Access-Control-Allow-Origin fejléccel.


[...]"válaszként megkaptam az oldal forráskódját, illetve egy PHP kódot"[...]

Ezek szerint a külső oldalra vonatkozó tartalomlekérést a klines oldali korlátozás miatt ilyen kerülő megoldást javasolt. Korábban eddig nem írtad, hogy azt a másik oldalt nem te üzemeled.


"Hogyan tudnám JavaScript-el lefuttatni azt?"

Mivel az említett php kód kvázi proxy-ként működik és így klines oldalon maradsz ugyanazon a domain néven. Így meghívod az útvonalnak megfelelő helyen UserInput get paraméterrel.

Ha ennek a php szkriptnek az url-je : [link]

Ekkor amit javasciptből hívnod kell mint get kérés url-je :

' [link] ?UserInput='+encodeURIComponent(userInput)

Ahol js kódban userInput egy változó.


"WordPress-t használok. Melyik könyvtárba érdemes feltölteni és hogyan érdemes hivatkozni rá?"

A wp-content mappán belül valamelyik almappába hoznék létre új mappát.

Például ha example az új mappa : wp-content/themes/foo/example

Ha a php fájl neve example.php és a domain foo.com akkor

[link] ennek a php-nek az url-je.


Ezt persze csak a rendelkezésre álló információk alapján mondom.

Éles esetre azért komolyabb hibakezelés kell mint a mellékelt try catch-es megoldás.

2023. jan. 14. 14:19
Hasznos számodra ez a válasz?
 7/9 anonim ***** válasza:

Nem is szándékoztam szóközöket berakni :

' [link]

2023. jan. 14. 14:33
Hasznos számodra ez a válasz?
 8/9 anonim ***** válasza:

14:33

A https elé nem tudom hogy került itt is szóköz, nem kell pedig.

2023. jan. 14. 14:34
Hasznos számodra ez a válasz?
 9/9 A kérdező kommentje:
Sikerült, tökéletesen működik. Nagyon szépen köszönöm a segítségeteket! :)
2023. jan. 14. 16:10

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!