Ajax跨域擷取資料的簡便方法__Ajax

來源:互聯網
上載者:User

跨域通訊的限制是在瀏覽器端,也就是用戶端上,所以可以從伺服器端代碼做文章。這和前幾天gzip的問題很相像了,當時伺服器上的gzip流是因為被isa阻止而無法下載壓縮後的檔案,最後寫了一個壓縮代理放在伺服器上,強制返回壓縮資料。

現在這個問題最簡便的方法也是寫一個代理來把js請求的資料從另外一個域轉寄到本域,然後再用js訪問代理。

比如代碼: obj.sendRequest("http://www.abc.com/test.aspx?p1=tt&p2=sss");

將變為 obj.sendRequest("redirect.aspx?url=http%3A%5C%5Cwww.abc.com%5Ctest.aspx%3Fp1%3Dtt%26p2%3Dsss

其中redirect.aspx就是轉送 Proxy,考慮到obj對象有些參數可能是post上來的,應該在這個代理頁的伺服器端要把所有的request參數傳給請求頁面,下面的樣本省略了這一步。aspx的轉送 Proxy的代碼很簡單 System..Net.WebClient wb = new  System.Net.WebClient();
byte [] b = wb.DownLoadData(Request[ " Url " ]);
Response.BinaryWrite(b);

這其實比伺服器端是用xmlhhtp還方便。

btw:IE限制跨域的地方在

工具-Internet選項-安全-自訂層級-通過域訪問資料來源-禁用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.