因為項目中需要對第三方的站點進行跨域請求,原來常用的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的具體使用方式,網上有很多相關的資料可以參考。這里就暫時做個記錄,以后用到的話再具體分析。
參考資料: