上方廣告

Lady Kukki 手作糖霜餅乾

2011年5月12日 星期四

JavaScript跨網域讀取資料問題

先前的文章中有提到使用jQuery.get('xxx.html',{},function{});可以直接讀取同網域所回傳的資料,如XML...,但是最近有遇到一個Case就是要去讀取Google API 所提供的資料就一直發生問題。網路上有一些文章提到跨域存取要使用其它的方法,個人覺得這樣太麻煩了,於是提供大家另外的方法來使用。
首先寫一個aspx檔,這個檔案的目的是為了用來抓取Google API回傳的資料,如200,8,"233台灣新北市烏來區西羅岸路132號",.cs檔如下。
//using System.Net;
//using System.IO;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://maps.google.com/maps/geo?hl=zhtw&ll=24.86723,121.51746&output=csv");
request.ServicePoint.ConnectionLimit = 50;
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
    using (Stream stream = response.GetResponseStream())
    {
        using (StreamReader reader = new StreamReader(stream))
        {
            address = reader.ReadToEnd();
            address = address.Replace("\"", "'");
        }
    }
}

接下來就簡單了,運用之前所提的方法來讀取這個頁面回傳的檔案, 如此就可以達到相同的目的了。