ajax跨域訪問(wèn)代理文件下載(asp、php、asp.net)_AJAX教程
推薦:Ajax教程之簡(jiǎn)單應(yīng)用,檢測(cè)用戶名是否存在客戶端頁(yè)面index.html onal.dtd html xmlns=1999/xhtml head titleajax測(cè)試用戶名是否存在/title script language=
最近做東西遇到了ajax跨域(cross domain)訪問(wèn)的問(wèn)題,最后采用了Application Proxies 方式解決,即在本域內(nèi)放置一個(gè)代理文件(視本域支持的開(kāi)發(fā)語(yǔ)言選定asp、asp.net或是其他),此代理文件將url參數(shù)(QueryString)發(fā)送到目標(biāo)域?qū)?yīng)頁(yè)面獲取html代碼,然后輸出。ajax直接訪問(wèn)這個(gè)代理文件以達(dá)到跨域的目的。
基于asp.net的跨域訪問(wèn)代理文件c#代碼如下:
<%@ Page Language="C#" AutoEventWireup="true" ResponseEncoding="utf-8" %>
<%@ Import Namespace=System.Net %>
<%@ Import Namespace=System.IO %>
<script runat="server">
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
string sourceUrl = "http://devspy.net";
this.Page.Response.Write(TransferHtmlPage(string.Concat(sourceUrl, "?", this.Page.Request.QueryString)));
}
public string TransferHtmlPage(string url)
{
string result = string.Empty;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
result = reader.ReadToEnd();
}
catch(Exception ex)
{
return string.Format(@"<p style='color:red;text-align:center;'>服務(wù)器獲取文件內(nèi)容出錯(cuò):{0}</p>", ex.Message);
}
if (!CheckVersionWaterMark(result))
return @"<p style='color:red;text-align:center;'>版本水印失效,請(qǐng)聯(lián)系相關(guān)技術(shù)人員。</p>";
return result;
}
public bool CheckVersionWaterMark(string inputString)
{
return true;//不驗(yàn)證水印了
//string pattern = "WaterMark";
//return Regex.IsMatch(inputString, pattern, RegexOptions.IgnoreCase);
}
</script>
另外還有基于asp和php的實(shí)現(xiàn),不再列出,感興趣的可以下載包含這三個(gè)文件的壓縮包:
http://www.cnblogs.com/Files/cncxz/ajaxProxy.rar
分享:淺談我眼中的AjaxAJAX在去年確實(shí)火爆了,作為Web2.0時(shí)代的核心技術(shù),關(guān)注度盛況空前,至今仍余音未絕,我一直從事于WinForm、Windows Mobile應(yīng)用開(kāi)發(fā),雖然對(duì)Web開(kāi)發(fā)略知一二,但從未向?qū)W習(xí)WinForm開(kāi)發(fā)一樣系統(tǒng)的學(xué)過(guò)Web,最近閑暇之余從頭學(xué)了學(xué)ASP.NET,到現(xiàn)在才真正理解清
- Ajax中瀏覽器的緩存問(wèn)題解決方法
- AJAX和WebService實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)具體代碼
- ajax 登錄功能簡(jiǎn)單實(shí)現(xiàn)(未連接數(shù)據(jù)庫(kù))
- AJAX和WebService實(shí)現(xiàn)郵箱驗(yàn)證(無(wú)刷新驗(yàn)證郵件地址是否合法)
- AJAX和三層架構(gòu)實(shí)現(xiàn)分頁(yè)功能具體思路及代碼
- 使用AJAX返回WebService里的集合具體實(shí)現(xiàn)
- AJAX獲取服務(wù)器當(dāng)前時(shí)間及時(shí)間格式輸出處理
- ajax傳遞多個(gè)參數(shù)具體實(shí)現(xiàn)
- ajax傳遞一個(gè)參數(shù)具體實(shí)現(xiàn)
- 滑輪滾動(dòng)到頁(yè)面底部ajax加載數(shù)據(jù)配合jsonp實(shí)現(xiàn)探討
- jQery ajax——load()方法示例介紹
- jQuery+Ajax實(shí)現(xiàn)表格數(shù)據(jù)不同列標(biāo)題排序(為表格注入活力)
AJAX教程Rss訂閱編程教程搜索
AJAX教程推薦
- 詳解-CSS技巧篇
- AJAX和WebService實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)具體代碼
- 站長(zhǎng)推薦:Ajax技術(shù)概述與現(xiàn)狀應(yīng)用
- jPager一個(gè)適合Ajax+JSON+jQuery環(huán)境使用的多功能頁(yè)碼欄
- 如何解決Ajax中文亂碼問(wèn)題
- 基于AJAX技術(shù)實(shí)現(xiàn)Struts校驗(yàn)框架
- 怎樣解決ajax中文亂碼問(wèn)題
- 如何用AJAX打造博客無(wú)刷新搜索
- ajax struts2 下拉框賦值(適合所有)
- 輕量級(jí)的Ajax解決方案——DynAjax:直接在客戶端調(diào)用C#類的方法
猜你也喜歡看這些
- 使用Ajax技術(shù)開(kāi)發(fā)Web應(yīng)用程序
- 防止ajax重復(fù)請(qǐng)求的方法(GET和POST)
- 多ajax請(qǐng)求的各類解決方案(同步, 隊(duì)列, cancel請(qǐng)求)
- AJAX憂慮與啟發(fā)成也腳本,敗也腳本
- 用AJAX解決一些常見(jiàn)問(wèn)題
- 解析RIA和AJAX
- 用Ajax和RSS制作一個(gè)首頁(yè)新聞
- Ajax二級(jí)聯(lián)動(dòng)菜單實(shí)現(xiàn)原理及代碼
- 怎樣用AjaxPro實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)
- 掌握Ajax 第1部分:Ajax簡(jiǎn)介
- 相關(guān)鏈接:
- 教程說(shuō)明:
AJAX教程-ajax跨域訪問(wèn)代理文件下載(asp、php、asp.net)
。