7

我正在尝试让 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 服务下工作?

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

干杯,杰米

4

1 回答 1

1

实际上,您只能像这样实现每个请求的响应自定义标头。

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

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

跨域 jQuery Ajax 请求和 WCF REST 服务

或者您可以像这样实现配置:

<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。它让你自由,但很难处理。

我想知道你选择什么。

于 2013-08-24T13:54:28.637 回答