2012-12-01 19 views
7

Uzaktan işlevleri yürütmek için sunucu olarak belirli bir PHP betiğini kullanan bir Javascript terminalini içeren bir proje için bir fikrim vardı. Aynı menşeli politikanın böyle bir projeyle ilgili bir engel olacağını anlıyorum, ancak her gün kullandığım Google Analytics'e baktığımda, bu sorunun büyük çapta önlenmesi gibi görünüyor.Google Analytics, aynı kaynak politikasını nasıl önler?

Access-Control-Allow-Origin: * 

Bu, herhangi bir ana ya da alternatif belirli bir ana bilgisayardan istekleri yerine kullanılabilir verir: Sunucu istekler için aşağıdaki başlığıyla yanıt vermek için

+1

gösteriyor bazen' iframe' kullanılır. – Haocheng

+0

jsonp'dan bahsettiğiniz için, bu tamamlayıcının farkında değildim. Google'ın neden JS ve HTML'yi ayırmadığını her zaman merak ettim, 'script' etiketi bunun için çok önemli görünüyor. – Lee

+3

Hatırladığım şeyden, GA, tüm bilgi GA sunucularını bilmesi gereken src özniteliğiyle (JS aracılığıyla) bir 'ekler (görüntüleri gömerken etki alanı sınırlaması yoktur). Gerçek görüntü 1x1 boş bir görüntü olduğuna inanıyorum döndü. – techfoobar

cevap

11

etki alanları arası isteklere izin verecek şekilde modern bir yoldur *. Buna Çapraz Kaynak Kaynak Paylaşımı (CORS) denir. Maalesef eski tarayıcılarda desteklenmiyor. Bu durumda tarayıcıda çalışmak için hacklere ihtiyacınız var (bir yorumcu belki de bir görüntü talep ederek söyledi).

+0

Bu, "daha temiz" bir yol gibi görünüyor. İyi giriş – Lee

11

Google Analytics, Google AdWords ve hemen hemen tüm diğer analitik/web-pazarlama platformları <img> etiketlerini kullanır.

JS programlarını yüklerler, bu programlar sayfaya yerleştirdiğiniz izleme işlemlerini gerçekleştirir, ardından bir resim oluşturur ve sunucunun etki alanı ne olursa olsun görüntünün kaynağını ayarlar, ayrıca tüm izleme bilgilerinizi ekleyin sorgu dizesine.

püf noktası orada nasıl olur önemli değil yani:
sunucu çağrıldığını URL içindedir veriler hakkında sadece endişe ve istemci belirli bir çağrı yapma konusunda sadece ilgilenir URL ve herhangi bir dönüş değeri almama.
Böylece, birileri yıllar önce <img>'u seçti ve şirketler o zamandan beri kullanıyor.

+0

İlginç teşekkürler. Bu en az söylemek çok güzel görünüyor! – Lee

+1

@Lee It. Ancak web analitiği izleme ve arama motoru pazarlaması, AJAX'ın bir ev ismi haline gelmesinden ve herkesin CDATA'nın yorum etiketlerinde hala yazı yazmaktan ötürü, bir şekilde ya da başka bir şekilde etrafta olmuştur. O zaman, 'img' etiketi muhtemelen 'noscript' yararından dolayı seçildi.Aslında, AdWords takibine, hatta SiteCatalyst'e (60.000 ABD doları + yıllık ödeme) sahip bir program izlemeye bakarsanız, hâlâ JS bölümlerinin altında bir "noscript" bölümü vardır. Böylece JS harici programlar yükler ve 'noscript' sürümüne benzer bir görüntü oluşturur. – Norguard

+1

@ Bir hack olmasına rağmen, doğru bir şekilde yapmak, verilerinizde büyük delikler bırakacaktır (bu çürük yöntemi kullananlardan bile daha büyüktür), çünkü birçok tarayıcı CORS'i desteklememektedir. Başka bir 5 yılda, bu uygulanabilir bir çözüm olabilir, çünkü her erkek, kadın ve tost, çapraz kaynaklı JS ile infüze edilecektir. O zamana kadar, izlenen kullanıcıların sayısını en üst düzeye çıkarmak için alt-optimal çözümlerle sıkıştık, bu da bir "" veya "%