使用CORS + SOAP + WCF进行HTTPS服务

时间:2013-07-23 22:59:37

标签: javascript wcf soap cross-domain cors

我正在努力让CORS为我们的SOAP Web服务的新版本(在HTTPS下运行并具有用户名/密码身份验证)工作,这可以通过JS连接。

目前我在本地(不是跨域)正常工作,但很快它正在使用不同的域我从WCF Traceviewer获得以下内容。 (IIS7中400错误请求)

<ExceptionString>System.Xml.XmlException: The body of the message cannot be read because it is empty.</ExceptionString>

似乎它甚至没有到达我的消息检查器运行的部分来添加适当的CORS头。

有没有人在此之前遇到过这种情况或设法让CORS在HTTPS SOAP服务下工作?

我很感激你能给出的任何建议。

干杯, 杰米

1 个答案:

答案 0 :(得分:1)

实际上,你可以这样做,只为每个请求实现响应自定义标头。

Response.AppendHeader("Access-Control-Allow-Origin", "*");

还有更多方法可以做到这一点。你只能选择是。您是否看到了对wcf文章启用跨域访问?在跨域使用wcf和wcf服务主机的wcf服务实现了一个项目。您可以将jsonp与webhttp绑定一起使用。示例答案在这里;

Cross Domain jQuery Ajax Request & WCF REST Service

或者你可以实现这样的配置:

<system.webServer>
 <httpProtocol>
  <customHeaders>
   <add name="Access-Control-Allow-Origin" value="*" />
  </customHeaders>
 </httpProtocol>
</system.webServer>

有关实施/启用cors的最佳方法,请访问enable-cors.org网站。我很容易找到这个链接。

http://enable-cors.org/server_wcf.html

至少你可以使用jsonp而不是json。它是自由的,但很难处理。

我不知道你选择了什么。