具体代码如下:
var request = (HttpWebRequest)WebRequest.Create(url);
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
c# .net 后台的httpwebrequest方法可以跨域访问吗?
答案:3 悬赏:20 手机版
解决时间 2021-03-07 19:36
- 提问者网友:温旧梦泪无声
- 2021-03-07 07:12
最佳答案
- 五星知识达人网友:雪起风沙痕
- 2021-03-07 08:22
string URL = "www.xxx.com";
public void sendPost(string urlArgs,HttpContext context)
{
//context.Request["args"]
System.Net.WebClient wCient = new System.Net.WebClient();
wCient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
byte[] postData = System.Text.Encoding.ASCII.GetBytes("id=" + urlArgs);
byte[] responseData = wCient.UploadData(URL, "POST", postData);
string returnStr = System.Text.Encoding.UTF8.GetString(responseData);//返回接受的数据
context.Response.ContentType = "text/plain";
context.Response.Write(returnStr);
}除了上面的方法还有可以使用JSONP来实现,具体应用JSONP实现Json数据跨域调用,需要服务器端与客户端的合作完成。关于JSONP的具体使用方式,网上有很多相关的资料可以参考。这里就暂时做个记录,以后用到的话再具体分析。
public void sendPost(string urlArgs,HttpContext context)
{
//context.Request["args"]
System.Net.WebClient wCient = new System.Net.WebClient();
wCient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
byte[] postData = System.Text.Encoding.ASCII.GetBytes("id=" + urlArgs);
byte[] responseData = wCient.UploadData(URL, "POST", postData);
string returnStr = System.Text.Encoding.UTF8.GetString(responseData);//返回接受的数据
context.Response.ContentType = "text/plain";
context.Response.Write(returnStr);
}除了上面的方法还有可以使用JSONP来实现,具体应用JSONP实现Json数据跨域调用,需要服务器端与客户端的合作完成。关于JSONP的具体使用方式,网上有很多相关的资料可以参考。这里就暂时做个记录,以后用到的话再具体分析。
全部回答
- 1楼网友:一叶十三刺
- 2021-03-07 09:57
“跨域”是针对前端浏览器而言,A域的页面里想访问B域里的资源(IMG、JS、CSS、AJAX等等)叫做“跨域”。浏览器出于安全目的的考虑,默认禁止了AJAX跨域。
也就是说,AJAX跨域被阻止是浏览器本身造成的,并不是后端引发的(后端判断Referer那不叫阻止跨域)。
而且后端不存在什么“A域里的页面”,何来“跨域”?
- 2楼网友:躲不过心动
- 2021-03-07 08:40
把返回值强制转换为ftpwebrequest就可以了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯