我正在努力让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服务下工作?
我很感激你能给出的任何建议。
干杯, 杰米
答案 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。它是自由的,但很难处理。
我不知道你选择了什么。