最近项目需要实现XmlHttp的POST方法到另一服务器上的页面进行数据的更新可是IE会提出该页正在访问其控制范围之外的信息是否继续?等警告信息而在其他浏览器上直接禁止掉GOOGLE一下原来是XmlHttp的跨域访问问题找了很多资料说是提供很多解决方案可是都没有用处
原来由于浏览器的安全限制网络连接的跨域访问时不被允许的我们不能在浏览器端直接使用AJAX来跨域访问资源但是在服务器端是没有这种跨域安全限制的所以我们只需要让服务器端帮我们完成跨域访问的工作然后直接获取服务器端跨域访问的结果就可以了分享下我的解决办法希望能有所帮助^_^
CertCheckaspx:
usingMSXML;
namespaceCA
{
publicpartialclassCertCheck:SystemWebUIPage
{
protectedvoidPage_Load(objectsenderEventArgse)
{
if(Request[resultid]!=null)
{
strings=Request[resultid];
string[]result=sSplit(@);
LabelText=result[];
SystemXmlXmlDocumentxmlDoc=newSystemXmlXmlDocument();
xmlDocLoad(VBRxml);
SystemXmlXmlElementRegNode=xmlDocCreateElement(Id);
RegNodeInnerText=result[];
xmlDocDocumentElementAppendChild(RegNode);
RegNode=xmlDocCreateElement(Serial);
RegNodeInnerText=result[];
xmlDocDocumentElementAppendChild(RegNode);
MSXMLXMLHTTPxh=newMSXMLXMLHTTPClass();
xhopen(POSTxfalsenullnull);
xhsetRequestHeader(ContentTypetext/xml);
xhsetRequestHeader(ContentTypegb);
xhsend(xmlDocInnerXml);
if(xhreadyState==)
{
if(xhstatus==)
{
LabelText+=###+xhresponseText;
}
}
}
}
}
}
VBRxml:
<?xmlversion=?>
<root>
</root>
PS: 在xhsend()中可以直接写参数
CertCheckaspx:
usingSystemNet;
usingSystemIO;
namespaceCA
{
publicpartialclassCertCheck:SystemWebUIPage
{
protectedvoidPage_Load(objectsenderEventArgse)
{
if(Request[resultid]!=null)
{
strings=Request[resultid];
string[]result=sSplit(@);
LabelText=result[];
stringparam=Id=+result[]+&Serial=+result[];
byte[]bs=EncodingASCIIGetBytes(param);
HttpWebRequestreq=(HttpWebRequest)HttpWebRequestCreate(x);
reqMethod=POST;
reqContentType=application/xwwwformurlencoded;
reqContentLength=bsLength;
StreamreqStream=reqGetRequestStream();
reqStreamWrite(bsbsLength);
reqStreamClose();
HttpWebResponsemyResponse=(HttpWebResponse)reqGetResponse();
StreamReaderreader=newStreamReader(myResponseGetResponseStream()EncodingGetEncoding(GB));
stringcontent=readerReadToEnd();
readerClose();
myResponseClose();
LabelText+=###+contentToString();
}
}
}
}
CAProcessaspx
protectedvoidPage_Load(objectsenderEventArgse)
{
intId=intParse(RequestForm[Id]);
stringSerial=RequestForm[Serial];
//
ResponseWrite(IdToString()++Serial);
ResponseEnd();
}