您好,欢迎访问一九零五行业门户网

ajax跨域访问代理文件下载(asp、php、asp.net)

最近做东西遇到了ajax跨域(cross domain)访问的问题,最后采用了application proxies 方式解决,即在本域内放置一个代理文件(视本域支持的开发语言选定asp、asp.net或是其他),此代理文件将url参数(querystring)发送到目标域对应页面获取html代码,然后输出。ajax直接访问这个代理文件以达到跨域的目的。
基于asp.net的跨域访问代理文件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(@服务器获取文件内容出错:{0}
, ex.message);
        }
if (!checkversionwatermark(result))
            return @版本水印失效,请联系相关技术人员。
;
return result;
    }
public bool checkversionwatermark(string inputstring)
    {
        return true;//不验证水印了
        //string pattern = watermark;
        //return regex.ismatch(inputstring, pattern, regexoptions.ignorecase);
    }
script>
另外还有基于asp和php的实现,不再列出,感兴趣的可以下载包含这三个文件的压缩包:
http://files.cnblogs.com/cncxz/ajaxproxy.rar
其它类似信息

推荐信息