2012-12-01 8 views
7

मुझे एक जावास्क्रिप्ट टर्मिनल से संबंधित एक परियोजना के लिए एक विचार था जिसमें एक निर्दिष्ट PHP स्क्रिप्ट का उपयोग दूरस्थ कार्यों को करने के लिए सर्वर के रूप में किया गया था। मैं समझता हूं कि एक ही मूल नीति ऐसी परियोजना के साथ बाधा होगी, लेकिन Google Analytics को देखकर, जिसे मैं हर दिन उपयोग करता हूं, ऐसा लगता है कि उनके पास एक बड़े पैमाने पर समस्या से बचने का एक तरीका है।Google Analytics समान मूल नीति से कैसे बचता है?

Access-Control-Allow-Origin: * 

यह किसी भी होस्ट करता है, या वैकल्पिक रूप से किसी विशिष्ट होस्ट से अनुरोध बजाय इस्तेमाल किया जा सकता अनुमति देता है:

+1

दर्शाता सामान्य, 'script' टैग और jsonp प्रारूप में, कभी कभी' iframe' प्रयोग किया जाता है। – Haocheng

+0

जेसनपी का जिक्र करने के लिए धन्यवाद, मुझे इस पूरक के बारे में पता नहीं था। मैंने हमेशा सोचा कि क्यों Google जेएस और एचटीएमएल को अलग नहीं करता है, ऐसा लगता है कि इसके लिए 'स्क्रिप्ट' टैग महत्वपूर्ण है। – Lee

+3

मुझे जो याद है, उससे जीए एक ( 'दर्ज करता है जिसमें सभी गुणों वाले स्रोत विशेषता वाले GA विशेषता के साथ GA सर्वर को एम्बेड करने की आवश्यकता होती है (छवियों को एम्बेड करने पर कोई क्रॉस-डोमेन प्रतिबंध नहीं है)। वास्तविक छवि लौटाई गई मुझे विश्वास है कि यह 1x1 खाली छवि है। – techfoobar

उत्तर

11

क्रॉस-डोमेन अनुरोध अनुमति देने के लिए आधुनिक तरीके के लिए सर्वर किसी भी अनुरोध के लिए निम्न हेडर के साथ प्रतिक्रिया करने के लिए है * का। इसे क्रॉस ओरिजिनल रिसोर्स शेयरिंग (सीओआरएस) कहा जाता है। दुर्भाग्यवश यह पुराने ब्राउज़र में समर्थित नहीं है, इसलिए आपको उस मामले में ब्राउज़र के चारों ओर काम करने के लिए हैक्स की आवश्यकता है (जैसे एक टिप्पणीकर्ता शायद एक छवि का अनुरोध करके कहा जाता है)।

+0

यह एक बहुत "क्लीनर" तरीका की तरह लगता है। अच्छा इनपुट – Lee

11

Google Analytics, Google AdWords और व्यावहारिक रूप से अन्य सभी एनालिटिक्स/वेब-मार्केटिंग प्लेटफ़ॉर्म <img> टैग का उपयोग करते हैं।

वे अपने जेएस प्रोग्राम लोड करते हैं, वे प्रोग्राम पेज पर जो भी ट्रैकिंग डालते हैं, वे एक छवि बनाते हैं और छवि का स्रोत उनके सर्वर के डोमेन के बराबर होने के लिए सेट करते हैं, साथ ही अपनी सभी ट्रैकिंग जानकारी जोड़ते हैं क्वेरी स्ट्रिंग के लिए।

क्रूक्स यह है कि इससे कोई फर्क नहीं पड़ता कि यह कैसे हो जाता है:
सर्वर केवल उस डेटा के बारे में चिंतित है जो यूआरएल के अंदर है, और क्लाइंट केवल विशिष्ट को कॉल करने के बारे में चिंतित है यूआरएल, और कोई वापसी मूल्य प्राप्त करने में नहीं।
इस प्रकार, किसी ने साल और साल पहले <img> चुना, और कंपनियां तब से इसका उपयोग कर रही हैं।

+0

दिलचस्प धन्यवाद। यह कम से कम कहने के लिए बहुत हैकी लगता है! – Lee

+1

@ इसे देखो। लेकिन वेब-एनालिटिक्स ट्रैकिंग और सर्च इंजन मार्केटिंग एक रूप में या किसी अन्य रूप में रहा है, क्योंकि AJAX घर का नाम बनने से पहले, और सभी अभी भी 'सीडीएटीए' टिप्पणी टैग में लिपियों को लपेट रहे थे। उसके बाद, 'img' टैग शायद 'नोस्क्रिप्ट' लाभ के कारण चुना गया था।वास्तव में, यदि आप AdWords ट्रैकिंग, या यहां तक ​​कि SiteCatalyst (एक प्रोग्राम जो आप $ 60,000 +/वर्ष का भुगतान कर सकते हैं) ट्रैकिंग को देखते हैं, तो उन्हें अभी भी उनके जेएस अनुभाग के नीचे 'नोस्क्रिप्ट' अनुभाग मिला है। तो जेएस बाहरी कार्यक्रमों को लोड करेगा और 'नोस्क्रिप्ट' संस्करण के समान होने के लिए एक छवि का निर्माण करेगा। – Norguard

+1

@ एक हैक होने के बावजूद, इसे सही तरीके से करने से आपके डेटा में बड़े छेद निकल जाएंगे (इस flimsy विधि प्रदान करने वाले लोगों की तुलना में भी बड़ा), क्योंकि कई ब्राउज़र CORS का समर्थन नहीं करते हैं। एक और 5 वर्षों में, यह एक व्यवहार्य समाधान हो सकता है, क्योंकि प्रत्येक व्यक्ति, महिला और टोस्टर को क्रॉस-उत्पत्ति जेएस के साथ जोड़ा जाएगा। तब तक, हम ट्रैक किए गए लोगों की संख्या को अधिकतम करने के लिए उप-इष्टतम समाधानों से फंस गए हैं, जो ' 'या'