2012-04-05 1 views
9

사용자의 최신 속도 테스트 결과를 표시하는 위젯을 만들고 싶습니다. speedtest.net에는 사용할 수있는 API가 있습니까? http://speedtest.net/csv.php?csv=1&ria=0&s=0으로 아약스 요청을 시도했지만 교차 도메인 오류가 발생했습니다. iframe을 시도했지만 다운로드에서 나타납니다.speedtest.net api

Google 크롬 확장 프로그램에있을 예정이므로 필요한 경우 Chrome API를 사용할 수 있습니다.

답변

9

speedtest.net은 Ookla and their Speed Test application입니다. 불행히도 사용자는 사용할 수있는 speedtest.net에 대한 공개 API를 제공하지 않습니다.

이러한 요구 사항 중 어느 하나가 의심 스럽지만 Speed Test Minihosted reporting solution for their full Speed Test software package (CSV 내보내기 기능 포함)을 제공합니다.

AJAX를 사용할 수없는 이유는 speedtest.net의 응답에 Access-Control-Allow-Origin 응답 헤더가 설정되어 있지 않으면 Chrome에서 크로스 사이트 요청을 허용하지 않기 때문입니다.

그러나 Chrome 확장 프로그램에서는 manifest.json 파일의 권한 섹션에 URL을 추가하여 원본 교차 요청을 허용 할 수 있습니다. 예를 들면 : 당신은 다음 문자열로 CSV 데이터를 검색하는 jQuery를 조금 사용할 수

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

(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을로드 할 수 없습니다. Origin chrome-extension : // pjmjaebdfmbljffjkcgegpgocnkoembf는 Access-Control-Allow-Origin에 의해 허용되지 않습니다. – Ruby

+0

흠. 대신 http : // */"'를 권한에 넣어보십시오. – Xenon

+0

@Zephlon : "http : // * /"'권한이있는 행운? – Xenon

1

크롬 확장에서 의 출처를 가진 XMLHttpRequests를 만들 수 있습니다. 단,에 대한 사용 권한이 필요합니다. 당신의 manifest.json 파일에서

은 URI를 추가

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

은 참조 : Match patterns합니다.