#Javascript:Cross Domain AJAX-使用YQL

  • 1609
  • 0
  • 2013-10-24

在這次撰寫無名備份工具的途中,
由於寫的是Web應用程式,
我要抓取無名部落格上的資料就必須要使用到AJAX,
但是基於安全性的問題,
AJAX在回應非JSONP的情況下,
僅支援同域名之間的抓取資料,
那麼該怎樣才能跨越域名去抓取資料呢?

在這次撰寫無名備份工具的途中,
由於寫的是Web應用程式,
我要抓取無名部落格上的資料就必須要使用到AJAX,
但是基於安全性的問題,
AJAX在回應非JSONP的情況下,
僅支援同域名之間的抓取資料,
那麼該怎樣才能跨越域名去抓取資料呢?

使用YQL

查了一下發現有人是使用Yahoo所提供的一套API-YQL來進行跨域抓資料的動作,
而正好有人也幫你把它包裝起來寫成一個jQuery的plugin,
讓你引用該javascript碼後使用$.get就可以直接跨越域名去抓取資料。

底下正是該plugin的github位址(使用此plugin,也必須引入jQuery函式庫):
https://github.com/padolsey/jQuery-Plugins/tree/master/cross-domain-ajax/

引用以上的plugin後,在要做讀取資料的地方寫入底下的Code:

xdomainajax.js
$.get(/* 此處放置欲抓取之資料所在的URL */, function(data){
    /* data.responseText即為所在該URL的網頁內容 */
});

大體上我就是這樣成功的將資料抓進來了!!

參考資料

  1. Cross Domain AJAX 抓網頁撈過界以及如何整合兩個部落格的標籤:http://user.frdm.info/ckhung/b/js/xdomain.php
  2. Cross-domain requests with jQuery:http://james.padolsey.com/javascript/cross-domain-requests-with-jquery/
  3. Cross domain mod for jQuery (Github):https://github.com/padolsey/jQuery-Plugins/tree/master/cross-domain-ajax/