js跨域我用的比较多的就是jsonp和程序代理。
但是jsonp只能用get,而且是js异步调用,有时候不能满足项目要求。
下面的代码块是js调用一般处理程序的代理来实现js跨域的。如果js需要多次跨域,推荐下面的方法。
public string GetInfo(HttpContext context)
{
string post = " a=XX&b=XX ";
return CreateHttpRequest( " https://www.XXXX.com ", post, " POST ");
}
#region 构造请求
/// <summary>
/// 构造请求
/// </summary>
/// <param name="requestUrl"> 请求地址 </param>
/// <param name="requestParam"> 请求参数 </param>
/// <param name="requestMethod"> 请求方式 </param>
/// <returns></returns>
public string CreateHttpRequest( string requestUrl, string requestParam, string requestMethod)
{
try
{
System.Net.HttpWebRequest request = System.Net.HttpWebRequest.Create(requestUrl) as System.Net.HttpWebRequest;
request.Method = requestMethod;
string post = requestParam;
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(post);
request.ContentType = " application/x-www-form-urlencoded ";
request.ContentLength = bytes.Length;
System.IO.Stream stream = request.GetRequestStream();
stream.Write(bytes, 0, bytes.Length);
System.Net.HttpWebResponse response = request.GetResponse() as System.Net.HttpWebResponse;
System.IO.StreamReader sr = new System.IO.StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8);
return sr.ReadToEnd();
}
catch (Exception)
{
return "";
}
}
#endregion