我有一个托管在 IIS 中的 WCF Web 服务。它使用 webHttpBinding。方法上有 WebInvoke 属性,因此它们可以访问 REST 样式。我可以像这样成功地使用它们:http: //mydomain.com/MyService.svc/some/rest/style/thing 并 POST 到 Web 服务的参数。
现在我想通过非标准端口 7777 将其更改为 HTTPS。我正确配置了 IIS,获得了证书和一切。我可以通过https://mydomain.com:7777访问 html 页面。我添加了一个修改过的 webhttpbinding 来添加一个安全节点,如下所示:
<security mode="Transport">
<transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
</security>
我还更改了我的行为的 servicemetadata 节点并删除了 httpGetEnabled='true' 并添加了 httpsGetEnabled='true'
我可以访问https://mydomain.com:7777/MyService.svc并获取信息屏幕。
我可以使用 http get 访问https://mydomain.com:7777/MyService.svc/some/rest/style/thing并收到“方法不允许”消息。
但是如果我尝试使用 POST 访问https://mydomain.com:7777/MyService.svc/some/rest/style/thing我会收到 403 禁止
更新更多信息
我正在缩小问题范围
我正在使用 jQuery 并通过 $.post(" http://mydomain.com/ .....". "data", callback, "json").. 访问 web 服务。 post(" https://mydomain.com:7777/ .....". "data", callback, "json")..这给了我一个 403 ......使用我看到的萤火虫而不是发送一个 POST ,它最初是发送选项..这就是给 403
这可能是一个 jquery 问题