Web服务器设置Access-Control-Allow-Headers

时间:2011-04-20 09:11:40

标签: asp.net-ajax

我在asp.net中创建了一个Web服务,并尝试从域内的本地计算机的html文件中访问它。

我收到此错误

  

XMLHttpRequest无法加载http://10.112.37.31/amanopoc/Service1.asmx。   请求标头字段不允许使用SOAPAction   接入控制允许集管。

try {

if (window.XMLHttpRequest)

  {// code for IE7+, Firefox, Chrome, Opera, Safari

  xmlhttp=new XMLHttpRequest();

  }

else

  {// code for IE6, IE5

  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

  }

}

catch (e) 

{

    xmlhttp = false; 

}


if( xmlhttp ) 

{



 xmlhttp.open ('POST', postUrl, true);

xmlhttp.onreadystatechange = function() 

{ 





if( xmlhttp.readyState == 4 ) {

 if (xmlhttp.status !=404) 

 {

//alert(xmlhttp.responseText);

//alert("TEST 1");

  var xmlDoc = xmlhttp.responseText;

  if(xmlDoc)

  {

    var x=xmlhttp.responseXML.selectSingleNode("//ObjectToXmlResult").text;

    //var y=x.getElementByTagName("HelloWorldResult");

    alert(x);

  }

  else

  {

    alert("xmlDoc is null");

  }

 }

 else

 {

  alert("xmlhttp.status =" + xmlhttp.status );

 }

} 

};





 xmlhttp.setRequestHeader('Content-Type', 'text/xml; charset=utf-8'); 

 xmlhttp.setRequestHeader("SOAPAction", soapActionUrl);

 xmlhttp.setRequestHeader("Content-Length", soapHeader.length );  

 xmlhttp.send(soapHeader);

}

可以任何

1 个答案:

答案 0 :(得分:6)

服务器上的

设置以下标题

Access-Control-Allow-Headers : SOAPAction

您可能还需要

Access-Control-Allow-Origin : *
Access-Control-Allow-Methods : POST,GET,OPTIONS

最后两个需要根据您的需求量身定制,但上述值应该让您工作。