熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ASP.NET後台代碼實現XmlHttp跨域訪問

2013-11-13 09:55:14  來源: .NET編程 

  最近項目需要實現XmlHttp的POST方法到另一服務器上的頁面進行數據的更新可是IE會提出該頁正在訪問其控制范圍之外的信息是否繼續?等警告信息而在其他浏覽器上直接禁止掉GOOGLE一下原來是XmlHttp的跨域訪問問題找了很多資料說是提供很多解決方案可是都沒有用處

  原來由於浏覽器的安全限制網絡連接的跨域訪問時不被允許的我們不能在浏覽器端直接使用AJAX來跨域訪問資源但是在服務器端是沒有這種跨域安全限制的所以我們只需要讓服務器端幫我們完成跨域訪問的工作然後直接獲取服務器端跨域訪問的結果就可以了分享下我的解決辦法希望能有所幫助^_^

  CertCheckaspx:

   using MSXML;
  namespace CA
  {
  public partial class CertCheck : SystemWebUIPage
  {
  protected void Page_Load(object sender EventArgs e)
  {
  if (Request[resultid] != null)
  {
  string s = Request[resultid];
  string[] result = sSplit(@);
  LabelText = result[];
  SystemXmlXmlDocument xmlDoc = new SystemXmlXmlDocument();
  xmlDocLoad(VBRxml);
  SystemXmlXmlElement RegNode = xmlDocCreateElement(Id);
  RegNodeInnerText = result[];
  xmlDocDocumentElementAppendChild(RegNode);
  RegNode = xmlDocCreateElement(Serial);
  RegNodeInnerText = result[];
  xmlDocDocumentElementAppendChild(RegNode);
  MSXMLXMLHTTP xh = new MSXMLXMLHTTPClass();
  xhopen(POST x false null null);
  xhsetRequestHeader(ContentType text/xml);
  xhsetRequestHeader(ContentType gb);
  xhsend(xmlDocInnerXml);
  if (xhreadyState == )
  {
  if (xhstatus == )
  {
  LabelText += ### + xhresponseText;
  }
  }
  }
  }
  }
  }

  VBRxml:

   <?xml version=?>
<root>
</root>

  PS: 在xhsend()中可以直接寫參數

  

  CertCheckaspx:

   using SystemNet;
  using SystemIO;
  namespace CA
  {
  public partial class CertCheck : SystemWebUIPage
  {
  protected void Page_Load(object sender EventArgs e)
  {
  if (Request[resultid] != null)
  {
  string s = Request[resultid];
  string[] result = sSplit(@);
  LabelText = result[];
  string param = Id=+result[]+&Serial=+result[];
  byte[] bs = EncodingASCIIGetBytes(param);
  HttpWebRequest req = (HttpWebRequest)HttpWebRequestCreate(x);
  reqMethod = POST;
  reqContentType = application/xwwwformurlencoded;
  reqContentLength = bsLength;
  Stream reqStream = reqGetRequestStream();
  reqStreamWrite(bs  bsLength);
  reqStreamClose();
  HttpWebResponse myResponse = (HttpWebResponse)reqGetResponse();
  StreamReader reader = new StreamReader(myResponseGetResponseStream() EncodingGetEncoding(GB));
  string content = readerReadToEnd();
  readerClose();
  myResponseClose();
  LabelText += ### + contentToString();
  }
  }
  }
  }

  CAProcessaspx

   protected void Page_Load(object sender EventArgs e)
  {
  int Id = intParse(RequestForm[Id]);
  string Serial = RequestForm[Serial];
  //
  ResponseWrite(IdToString()+ +Serial);
  ResponseEnd();
  }


From:http://tw.wingwit.com/Article/program/net/201311/11972.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.