通过C#后台实现跨域请求

  因为项目中需要对第三方的站点进行跨域请求,原来常用的Jquery的Ajax方法不能够实现跨域请求。在网上查找了一下资料,解决跨域请求的方式有不少,但是还需要根据自己的具体情况来做出不同的选择。在项目中我使用的是直接通过C#后台发送请求来实现跨域访问(后台消耗会增大),下面是请求的源码:

 1    string URL = "www.xxx.com";
 2    public void sendPost(string urlArgs,HttpContext context)
 3    {
 4        //context.Request["args"]
 5        System.Net.WebClient wCient = new System.Net.WebClient();
 6        wCient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
 7        byte[] postData = System.Text.Encoding.ASCII.GetBytes("id=" + urlArgs);
 8 
 9        byte[] responseData = wCient.UploadData(URL, "POST", postData);
10 
11        string returnStr = System.Text.Encoding.UTF8.GetString(responseData);//返回接受的数据 
12 
13        context.Response.ContentType = "text/plain";
14        context.Response.Write(returnStr);
15    }

除了上面的方法还有可以使用JSONP来实现,具体应用JSONP实现Json数据跨域调用,需要服务器端与客户端的合作完成。关于JSONP的具体使用方式,网上有很多相关的资料可以参考。这里就暂时做个记录,以后用到的话再具体分析。

 

参考资料:

JSONP

JS跨域请求

跨域请求(XDR)简介

轻松利用Jquery实现Ajax跨域访问

posted @ 2012-05-16 09:51  gyzhao  阅读(17089)  评论(0编辑  收藏