javascript i crossdomain

0

Witam

Mam pytanie jak rzwiązać kwestie z permission denied ktory dostaje w popupie z przegladarki gdy <ort>hce </ort>wyslac zapytanie do innego servera na ktorym stoi strona, jest na to jakis sposob?

Pozdrawiam

0

W sensie że AJAX?

Można zrobić niewidzialny obrazek do którego src będziesz ładował do obrazka np.:

obrazek.src = 'http://example.com/do_something.php?blabla=123';

Serwer zwraca obrazek jakiejś szerokości/wysokości, z tego parametru możesz odczytać kod błędu (np. definiujesz że jak serwer wyśle obrazek o szerokości 1px, to się udało, 2px - zły login)

Tylko nie przyda ci się, jeśli nie masz dostępu do serwera docelowego, albo chcesz przekazać coś więcej niż tylko informację o tym, że się udało.

Zawsze można jeszcze zrobić proxy w formie skryptu PHP po stronie serwera gdzie stoi skrypt, to "proxy" byłoby requestowane z AJAXa, pobierało właściwą stronę i zwracało.

0

@terefere2:
Ajax może tylko wysyłać żądania do macierzystej domeny -- do innych nie. @Demonical Monk przedstawił już dwa rozwiązania, ja dorzucę jeszcze jedno. Możesz skorzystać z czegoś w rodzaju JSONP. Zrób sobie w JavaScripcie funkcję globalną o nazwie np. parseResponse(responseData). W parametrze responseData serwer przekaże Ci wszystkie potrzebne informacje, np. status wykonania żądania.

I teraz po stronie klienta robisz dynamicznie element <script src="remote.serwer.com/do_something.js"> i dołączasz go do dokumentu. Serwer przetwarza żądanie pliku do_something.js i jako odpowiedź zwraca malutki skrypt JavaScript postaci:

parseResponse({ status: 'OK', foo: 'bar' });

Czyli po nadejściu odpowiedzi zostanie wywołana Twoja funkcja parseResponse z odpowiednimi parametrami, na które będziesz mógł sobie zareagować wedle uznania.

0

można też stworzyć proxy w AS. Flash ma tą zaletę, że nie ma problemów z XSS (o ile na serwerze, do którego stuka, jest odpowiedni plik crossdomain,xml).

0

Chyba, że potrzebujesz tego tylko i wyłącznie ty (nie inny użytkownicy). Wtedy można ręcznie wyłączyć XSS w ustawieniach przeglądarki (np. Firefox ma taką opcje).

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