2012-12-01 19 views
7

Wpadłem na pomysł projektu z terminalem Javascript wykorzystującym określony skrypt PHP jako serwer do wykonywania zdalnych funkcji. Rozumiem, że taka sama polityka pochodzenia byłaby przeszkodą w realizacji takiego projektu, ale patrząc na Google Analytics, z którego korzystam na co dzień, wydaje się, że mają sposób na uniknięcie problemu na ogromną skalę.W jaki sposób Google Analytics unika stosowania zasad dotyczących pochodzenia?

+1

Ogólnie, 'script' tagu & formacie jsonp, czasami' iframe' służy. – Haocheng

+0

Dzięki za wzmianka o jsonp, nie wiedziałem o tym dopełnieniu. Zawsze zastanawiałem się, dlaczego google nie oddziela JS i HTML, wydaje się, że znacznik 'script' jest dla tego istotny. – Lee

+3

Z tego co pamiętam, wkładki GA (przez JS) '' 'z atrybutem src zawierającym wszystkie serwery informacji GA muszą wiedzieć (nie ma ograniczeń między domenami osadzania obrazów). Rzeczywisty obraz zwrócony uważam za pusty obraz 1x1. – techfoobar

Odpowiedz

11

Nowoczesny sposób, aby umożliwić żądań między domenami jest serwer reagować z następującym nagłówkiem na wszelkie wnioski:

Access-Control-Allow-Origin: * 

Pozwala to wnioski z każdego komputera lub alternatywnie określonego hosta może być stosowany zamiast z *. Nazywa się to Cross Resource Resource Sharing (CORS). Niestety nie jest to obsługiwane w starszych przeglądarkach, więc w tym przypadku potrzebujesz hacków do obejścia przeglądarki (np. Komentator powiedział, że może poprosić o zdjęcie).

+0

To wydaje się być dużo "czystszym" sposobem. Dobry wkład – Lee

11

Google Analytics, Google AdWords i praktycznie wszystkie inne platformy analityczne/do marketingu internetowego używają znaczników <img>.

Załadują swoje programy JS, programy te obsługują śledzenie, które umieścisz na stronie, następnie tworzą obraz i ustawiają źródło obrazu na równe z domeną serwera, a także dodają wszystkie informacje śledzenia do ciągu zapytania.

Najważniejsze jest to, że nie ma znaczenia, jak się tam dostanie:
serwer martwi się tylko o dane, które znajdują się w wywołanym adresie URL, a klient jest zainteresowany tylko nawiązaniem połączenia z konkretnym URL, a nie uzyskiwanie wartości zwracanej.
Tak więc ktoś wybrał <img> lat i lat temu, a firmy używają go od tego czasu.

+0

Ciekawe dzięki. To wydaje się bardzo hacky co najmniej! – Lee

+1

@Lee Jest. Ale śledzenie analityki internetowej i marketing w wyszukiwarkach istniały w tej czy innej formie, ponieważ zanim AJAX stał się nazwą domową, a wszyscy wciąż pakowali skrypty w tagi komentarza "CDATA". Wcześniej tag 'img' został prawdopodobnie wybrany ze względu na korzyść' noscript'.W rzeczywistości, jeśli przyjrzysz się śledzeniu AdWords, a nawet SiteCatalyst (programowi, za który możesz zapłacić 60 000 USD rocznie), to wciąż mają sekcję 'noscript' poniżej sekcji JS. Tak więc JS załaduje zewnętrzne programy i zbuduje obraz podobny do wersji 'noscript'. – Norguard

+1

@ Mimo bycia hackiem, robienie tego we właściwy sposób pozostawiłoby duże dziury w danych (nawet większe niż te, które używają tej lichej metody), ponieważ wiele przeglądarek nie obsługuje CORS. W ciągu kolejnych 5 lat może to być realne rozwiązanie, ponieważ każdy mężczyzna, kobieta i toster będą natchnieni przez JS z różnych źródeł. Do tego czasu utknęliśmy w nieoptymalnych rozwiązaniach w celu zmaksymalizowania liczby osób, które są śledzone, co sprowadza się do '' lub '