[JS] user script - połączenie z bazą

0

To znowu ja :p

A więc wzięło mnie na napisanie sobie skryptu dla opery do pewnej gierki przeglądarkowej. I tutaj pojawia się moje pytanie - jak zrobić taki myk aby z tego skryptu połączyć się z bazą (jakąkolwiek, ale pewnie mysql bo najpopularniejszy), która jest w całkiem innej domenie niż domena gry? Szukałem i nie znalazłem możliwości połączenia się z jakąś bazą z poziomu JS i to jest nawet sensowne :) - jedynie php ale tego tutaj nie mam (nie wiem) jak użyć.
To wymyśliłem, że sobie napiszę skrypt w php, który będzie dostawał przez post dane, które będzie miał sparsować i wstawić do bazy. W JS pod guzikiem dodałem wysyłanie posta do mojego skryptu php i wszystko było by idealne gdyby nie fakt, że mi po prostu przechodzi na tamtą stronę :/

Da się jakoś zrobić tak, żeby z poziomu JS uruchomić jakiś skrypt php z całkiem innej domeny, i przekazać mu jakieś dane jednocześnie żeby mi się strona nie przeładowała

0

Wydaje mi się, że tylko poprzez ramkę

0

Do takiego czegos najzwyczajniej w swiecie uzywa sie Ajaxa. Mozesz nim przeciez wyslac dane metoda POST/GET bez najmniejszego problemu. Powinienes wtedy zrobic jakas prowizoryczna obsluge bledow zwracanych przez skrypt php tak zebys wiedzial cze zapytanie sie wykonalo czy nie.

Sam bardzo lubie technologie ajaxa do takich rzeczy i z jej stosowaniem tak na prawde nie ma zadnego problemu.

0
pan odpowiedz napisał(a)

Do takiego czegos najzwyczajniej w swiecie uzywa sie Ajaxa. Mozesz nim przeciez wyslac dane metoda POST/GET bez najmniejszego problemu. Powinienes wtedy zrobic jakas prowizoryczna obsluge bledow zwracanych przez skrypt php tak zebys wiedzial cze zapytanie sie wykonalo czy nie.

Sam bardzo lubie technologie ajaxa do takich rzeczy i z jej stosowaniem tak na prawde nie ma zadnego problemu.

jak zrobić taki myk aby z tego skryptu połączyć się z bazą (jakąkolwiek, ale pewnie mysql bo najpopularniejszy), która <font size="4">jest w całkiem innej domenie</span> niż domena gry?

0

Zainteresuj się czymś takim jak JSONP - można go użyć jako pseudo AJAX cross-domain

Przykład użycia: Flickr API

0

@Demonical Monk

Ale przeciez ajax sam w sobie jest niczym innym jak powloka obliczeniowo-sterujaca przegladarki. Mozna wywolac nim skrypt php z KAZDEJ domeny. Najwidoczniej wiedza ludzi odnosnie JS jest tak mizerna jak moze sie wydawac.

JSON jest tylko odpowiednio preparowanym tekstem. Nie jest technologia. Ajax sam w sobie jest kolejnym okienkiem przegladarki jesli zostanie dobrze pokierowany. Mozliwosci ma na prawde wielkie jak na swoj maly "mozdzek".

0

To zamiast się mądrzyć użyj czystego AJAXa do wywołania skryptu z jakiejś innej domeny, niż ta na której leży aktualnie wykonywany skrypt. Powodzenia.
Dostaniesz piękny komunikat: Access to restricted URI denied" code: "1012

0
Demonical Monk napisał(a)

To zamiast się mądrzyć użyj czystego AJAXa do wywołania skryptu z jakiejś innej domeny, niż ta na której leży aktualnie wykonywany skrypt. Powodzenia.
Dostaniesz piękny komunikat: Access to restricted URI denied" code: "1012

Fakt masz tutaj racje. Nie na wszystkich przegladarkach zadziala to co podalem. To wystarczy sobie zrobic skrypt php z proxy...

0
pan porada napisał(a)

Nie na wszystkich przegladarkach zadziala to co podalem.

A można wiedzieć na jakiej zadziała? Chociaż jeden przykład.

0
pan odpowiedz napisał(a)

JSON jest tylko odpowiednio preparowanym tekstem. Nie jest technologia.
JSON to nie to samo co JSONP, o którym pisałem. Tak samo jak AJAX rzadko ma coś wspólnego z XMLem (choć ma go w nazwie), tak samo JSONP może dostarczać dowolny format danych opakowany w funkcję callback - dane nie muszą być w formacie JSON jak głosi nazwa - choć zazwyczaj tak jest najwygodniej.

0
bswierczynski napisał(a)
pan porada napisał(a)

Nie na wszystkich przegladarkach zadziala to co podalem.

A można wiedzieć na jakiej zadziała? Chociaż jeden przykład.

Nie uzywam przegladarek kompletnych do testowania maluckich skryptow. Mam program i klikam na "podglad" i wtedy IE sie zalacza na 100%. Ktora wersje IE mam to nie wiem bo nie uzywalem tej przegladarki pare lat juz. W kazdym razie na niej to zadzialalo i z tad moj blad...

0

Jest jeszcze jeden sposób :-)

.. ale tylko dane w jedną stronę - to znaczy - z klienta do serwera php - ale nie otrzymasz danych powrotnych. Wystarczy zmienną JS typu Image, a następnie

image.src= x;

..gdzie x to adres twojego skryptu php. Wszelkie zapytania sql podasz w parametrach zapytania HTTP. Serwer niech tylko wrócić "sztuczny" obrazek 1x1 pikseli, a dane, które otrzymał poprzez samo istnienie request'u - wykorzysta jak chce.

Działa szybko i cross domain.

0

@Deti:
To stary, hax0rski sposób. Zresztą, czy nie było tak, że dało się jednak przesyłać (bardzo) proste odpowiedzi, używając właśnie rozmiaru obrazka? Serwer mógłby zwracać obrazki od 1x1 do 256x256 pikseli w zależności od tego, jak chciałby odpowiedzieć. Stringa tak się nie prześle, ale jakiś status czy liczbę -- jak najbardziej. Nie chcę mi się teraz tego sprawdzać, ale chyba dało się to zaaranżować i skutecznie odczytać wymiary obrazka z poziomu JS.

No ale autor tematu mówił coś o żądaniu POST, a sposób z obrazkiem to tylko GET.

0

a mi wpadl pomysl na cos troche bardziej "idiotycznego" czyli ladowanie zewnetrznego skryptu JS z innej strony.

0

Zastanawiam się czy do czegoś takiego nie sprawdziłoby się połączenie Javascript z SQLite. Nie próbowałem nigdy takiego połączenia, ale baza SQLite jest raczej łatwo dostępnym plikiem o ile umieściołoby się go w katalogu publicznym, nawet z autoryzacja.

Podkreślę, jeszcze raz nie próbowałem czegoś takiego, ale myślę, że mogłoby zadziałać :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1