2012-04-05 11 views
9

मैं उपयोगकर्ता के सबसे हालिया गति परीक्षण परिणामों को प्रदर्शित करने के लिए विजेट बनाना चाहता हूं। क्या speedtest.net में एक एपीआई है जिसका मैं उपयोग कर सकता हूं? मैंने http://speedtest.net/csv.php?csv=1&ria=0&s=0 पर AJAX अनुरोध करने का प्रयास किया लेकिन एक क्रॉस डोमेन त्रुटि मिली। मैंने एक आईफ्रेम की कोशिश की, लेकिन यह सिर्फ डाउनलोड में दिखाई दिया।speedtest.net api

यह Google क्रोम एक्सटेंशन में होगा, इसलिए यदि आवश्यक हो तो मैं क्रोम एपीआई का उपयोग कर सकता हूं।

उत्तर

9

speedtest.net Ookla and their Speed Test application द्वारा चलाया जाता है। दुर्भाग्य से वे speedtest.net के लिए कोई सार्वजनिक एपीआई प्रदान नहीं करते हैं जिसका आप उपयोग कर सकते हैं।

हालांकि मुझे इनमें से कोई भी आपकी आवश्यकताओं को पूरा करने में संदेह करता है, लेकिन वे Speed Test Mini और hosted reporting solution for their full Speed Test software package प्रदान करते हैं (जिसमें सीएसवी निर्यात क्षमताओं को शामिल किया गया है)।

कारण आप AJAX का उपयोग करने में असमर्थ हैं क्योंकि क्रोम जावास्क्रिप्ट को क्रॉस-साइट अनुरोध करने की अनुमति नहीं देगा जब तक कि Access-Control-Allow-Origin प्रतिक्रिया शीर्षलेख speedtest.net से प्रतिक्रिया में इस तरह के अनुरोध की अनुमति देने के लिए सेट में सेट नहीं किया जाता है।

क्रोम एक्सटेंशन में, हालांकि, आप अपनी manifest.json फ़ाइल के अनुमति अनुभाग में URL जोड़कर क्रॉस-मूल अनुरोधों की अनुमति दे सकते हैं। उदाहरण के लिए:

"permissions": [ 
    "http://*/" 
], 

फिर आप एक स्ट्रिंग के रूप में सीएसवी डेटा पुनः प्राप्त करने jQuery का एक सा इस्तेमाल कर सकते हैं (this answer देखें):

$.get('http://speedtest.net/csv.php?csv=1&ria=0&s=0', function(data) { 
    var csv = new String(data); 
    // do stuff with csv 
}, dataType='text'); 
+0

मेरे पास अनुमतियों में speedtest.net है। अपने कोड का उपयोग करके, मुझे अभी भी यह त्रुटि मिलती है: XMLHttpRequest http://speedtest.net/csv.php?csv=1&ria=0&s=0 लोड नहीं कर सकता है। उत्पत्ति क्रोम-एक्सटेंशन: // pjmjaebdfmbljffjkcgegpgocnkoembf को एक्सेस-कंट्रोल-अनुमति-उत्पत्ति द्वारा अनुमति नहीं है। – Ruby

+0

हम्म। इसके बजाय अनुमतियों में http: // */"' डालने का प्रयास करें। – Xenon

+0

@ ज़ेफ्लॉन: अनुमतियों में 'http: // * /" 'के साथ कोई भाग्य? – Xenon

1

आप क्रोम एक्सटेंशन में क्रॉस-उत्पत्ति XMLHttpRequests बना सकते हैं, प्रदान किया गया है कि आपने इसके लिए अनुमतियां अनुरोध की हैं।

अपने manifest.json फ़ाइल में यूआरआई जोड़ें:

"permissions": ["http://speedtest.net/csv.php?*"] 

यह भी देखें: Match patterns