2009-03-19 14 views
5

क्या जावास्क्रिप्ट Yahoo से एक आरएसएस एक्सएमएल फ़ीड लोड कर सकता है?क्या जावास्क्रिप्ट किसी तृतीय-पक्ष डोमेन से XML डेटा लोड कर सकता है?

क्या क्लाइंट-साइड जेएस को तृतीय-पक्ष डोमेन तक पहुंचने की अनुमति है?

उत्तर

2

आप तकनीक मेरे ब्लॉग पोस्ट में उल्लिखित का उपयोग कर सकते Unwritten guide to Yahoo Query Langauge

आप इस प्रकार का YQL बयान के साथ XML डेटा तालिका क्वेरी होगा:

select * from xml 
    where url="http://path/to/xml
तो फिर तुम (अपने html में एक स्क्रिप्ट टैग को जोड़ने जाएगा किया जा सकता है document.createElement ('script') के साथ एक src http://query.yahooapis.com/v1/public/yql?q={your yql यहां} और प्रारूप = जेसन और कॉलबैक = {आपका फ़ंक्शन यहां} जहां {आपका yql यहां } आपके yql स्टेटमेंट के यूआरआई एनकोडेड संस्करण के साथ प्रतिस्थापित किया गया है।

+0

अच्छा अच्छा विचार। हालांकि कुछ हद तक मेरे अपने सर्वर पर प्रॉक्सी होने की तरह! –

+0

यह अपनी प्रॉक्सी रखने से बेहतर है क्योंकि आप इसे भेजने से पहले याहू के सर्वर पर डेटा फ़िल्टर कर सकते हैं, यह व्यक्तिगत प्रॉक्सी के साथ ऐसा करने के लिए बहुत प्रयास करेगा। – jasonincode

0

मुझे जेएस के बारे में निश्चित नहीं है लेकिन मुझे पता है कि आप google's APIs में से एक का उपयोग कर सकते हैं और उनके पास एक आरएसएस रीडर है। मुझे पता है कि शायद यह वही नहीं है जो आप चाहते हैं, लेकिन यदि आप प्रलेखन के माध्यम से पढ़ते हैं तो आप इसका जवाब प्राप्त कर सकते हैं कि यह कैसे काम करता है।

2

ऐसा करने का एक आसान तरीका सर्वर के माध्यम से अनुरोध को प्रॉक्सी करना है कि आपका पृष्ठ रहता है। कदम हैं:

  1. लिखें एक सर्वर साइड स्क्रिप्ट आरएसएस फ़ीड पर एक http अनुरोध करता है, जब कि स्क्रिप्ट ही अनुरोध है (यानी के माध्यम से मिलता है या पोस्ट)
  2. उपयोग ajax सर्वर साइड स्क्रिप्ट अनुरोध करने के लिए, या बस उस पृष्ठ के लिए इसे मुख्य स्क्रिप्ट से कॉल करें।
  3. सर्वर साइड स्क्रिप्ट कुछ प्रदर्शन योग्य रूप में फ़ीड स्रोत लौटाता है।
  4. लाभ!

आईई 8 और एफएफ 3.1 (निश्चित नहीं) पर, इन अनुरोधों को विशेष क्रॉस साइट कॉल के माध्यम से बनाना संभव है, लेकिन ब्राउज़र की आखिरी पीढ़ी अभी भी समस्याएं पैदा करेगी। देखें:

http://dannythorpe.com/2009/01/15/ie8-cross-domain-request-support-demo/ http://ejohn.org/blog/cross-site-xmlhttprequest/ फ़ीचर एफएफ 3.0 में प्रतिबंधित है, यह स्पष्ट नहीं है अगर यह 3.1

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

0

सीधे नहीं। आप अनुरोध को छेड़छाड़ करने के डाना के सुझाव का उपयोग कर सकते हैं, या जेएसओएनपी नामक एक विधि को देख सकते हैं, जो अनिवार्य रूप से एक कस्टम कॉलबैक फ़ंक्शन में लौटाए गए JSON ऑब्जेक्ट को लपेटता है, जिसे आपके डीओएम में डालने वाले स्क्रिप्ट टैग द्वारा अनुरोध किया जाता है। अधिकांश एपीआई प्रदाता इसका समर्थन करते हैं (याहू के एपीआई सहित)।

2

आप किसी भी डोमेन/सर्वर से जावास्क्रिप्ट में आरएसएस लोड करने के लिए Google Feed API का उपयोग कर सकते हैं। सिर्फ एक प्रॉक्सी से अधिक, यह वास्तव में मूल सर्वर को मारने के बजाय Google कैश से आरएसएस सामग्री की सेवा करता है। यह छोटे सर्वरों के लिए एक लाइफसेवर हो सकता है जो स्लेशडॉट ट्रैफिक सर्ज को संभाल नहीं सकता है।

मैंने कई साल पहले article on Silverlight में क्रॉस-साइट आरएसएस एक्सेस के लिए फ़ीड एपीआई का उपयोग किया था।

संबंधित मुद्दे