![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 2.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam, jak w temacie czy mogę w jakiś sposób pobrać dane w formacie JSON z serwera znajdującego się w innej domenie metodą POST, bez przeładowywania strony?
|
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
file_get_contents z innego serwera
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 2.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
potrzebuję to zrobić używając JavaScriptu i dodatkowo przesłać argumenty.
|
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
No to ci mówie, że za pomoca php pobierasz sobie zawartość z innego serwera. A javascriptem wywolujesz ten skrypt.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 2.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Prawdę mówiąc nie rozumie (IMG:style_emoticons/default/smile.gif) Sytuacja wygląda tak, że do serwera z którego chcę pobrać jakieś dane, które produkuje działający tam skrypt PHP nie mam dostępu, nie mogę tam umieścić żadnego kodu. Muszę napisać skrypt, działający po stronie przeglądarki, który te dane odbierze. Wiem że dane, które chcę odebrać będą w formacie JSON. Skrypt ma wysyłać argument metodą POST.
Taki AJAX tylko cross domain (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
1) Ajax wywołuje skrypt SKRYPT.php
2) Skrypt php wywołuje SKRYPT_Z_INNEGO_SERWERA.php (curl, file_get_contents i streamy) 3) SKRYPT.php odpowiada ajaxowi |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Teoretycznie możesz też użyć techniki ukrytej ramki do tego, ale zbudowanie brigde`a (bo to wym mówi @wookieb) jest w sumie prostsze.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 28.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
a ja widzę tu problem - zagadnienie z 2 etapu rekrutacji w pewnej firmie webmasterskiej...
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 2.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
(IMG:style_emoticons/default/winksmiley.jpg) ale szukanie pomocy przy rozwiązywaniu problemów na forach internetowych to chyba nic złego?
bridge'a zrobiłem za pomocą samego curla (IMG:style_emoticons/default/winksmiley.jpg) W każdym bądź razie dziękuję za pomoc. Ten post edytował mjetek 14.05.2010, 10:27:06 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Może nieaktualne ale głupoty piszecie. Dane trzeba pobrać za pomocą JavaScript a nie jakichś tam PHP(Tak wynika to z pierwszego postu). Tak więc lepiej zrobić coś takiego:
Kod ASCIIEncoding enc=new ASCIIEncoding();
string postData="dane=daneresc&dane2=dane2tresc"; byte[] data = enc.GetBytes(postData); HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://example.com/plik"); myRequest.Method = "POST"; myRequest.ContentType="application/x-www-form-urlencoded"; myRequest.ContentLength = data.length; Stream newStream=myRequest.GetRequestStream(); newStream.Write(data,0,data.Length); newStream.Close(); |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
@SHiP dlaczego głupoty?
Dlatego piszemy o PHP bo we wszystkich nowoczesnych przeglądarkach zaimplementowaną takie cudo jak The Same Orgin Policy czyli zabezpieczanie przed pobieraniem danych za pomocą obiektu XHR z innej strony (innej domeny, jeśli komunikacja odbywa się na innym porcie, blablabla...) i nomen omen można na czystko zrobić to w JS`ie bo The Same Orgin Policy jest implementowane w przeglądarce (a nie jak większość twierdzi jest to ograniczenie JS`a/Ajax`a!) i tą opcje da się wyłączyć, tyle że 99% ludzi ma tą opcję włączoną i po ich stronie już takie zapytania będą odrzucane już na warstwie przeglądarki. Wyjścia są 2: - budowa brigde`a - technika ukrytej ramki Co do Twojego kodu, to eee... wyszła nowa wersja ECMAScriptu? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 17:18 |