我不能通过web.config添加customHeaders来支持WCF的CORS吗?

时间:2013-02-26 16:38:00

标签: .net wcf cors

此链接: “http:// new%20behavior%20and%20include%20it%20in%20the%20enpoint%20configuration”

表示:

您必须采取新行为并将其包含在端点配置中

在web.config中添加customHeaders是否足以为WCF服务启用CORS,如:

<httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
        <add name="Access-Control-Allow-Headers" value="content-type, x-requested-with, Accept />
...

如果还不够,为什么?

1 个答案:

答案 0 :(得分:1)

这些值是否足以为WCF启用CORS将取决于您正在使用哪个客户端,以及您正在访问哪个端点,以及该服务是否能够处理CORS的预检(OPTIONS)请求基于客户端将发送到资源。如果您的客户端发送的唯一标头是您列出的标头,并且您的服务可以处理OPTIONS请求,则应该没问题。如果您需要发送其他标头(例如,如果您想要访问基于BasicHttpBinding的端点,那么您还需要SOAPAction标头),那么它不是。

此外,由于这使用了IIS功能,因此无法用于自托管服务。这是从所有域启用CORS,这可能是您需要的,但您应该知道这一点。