gpt4 book ai didi

jquery - 为什么通过 ssl 托管在 iis 中的 wcf web 服务。结果是 "403 forbidden"? Jquery $.post 发送 OPTIONS 动词?

转载 作者:太空宇宙 更新时间:2023-11-03 13:05:02 25 4
gpt4 key购买 nike

我有一个托管在 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并获取信息屏幕。

我可以访问 https://mydomain.com:7777/MyService.svc/some/rest/style/thing使用 http get 时,我收到一条“方法不允许”的消息。

但是如果我尝试访问 https://mydomain.com:7777/MyService.svc/some/rest/style/thing使用 POST 我得到 403 禁止


更新一些信息

我正在缩小问题范围

我正在使用 jQuery 并通过 $.post("http://mydomain.com/ .....". "data", callback, "json").. 访问网络服务。现在我正在做 $.post("https://mydomain.com:7777/ .....". "data", callback, "json").. 这给了我一个 403...使用我看到的 Firebug 而不是发送 POST,它最初发送选项..这就是给 403

这可能是jquery的问题

最佳答案

JQuery $.ajax、$.get、$.post 调用不允许跨域调用。当您制作一个时,它会发送 OPTIONS 动词而不是 POST 动词,尽管请求方法是 POST。

其他解决方法可能是创建另一个子域,该子域指向您要实际调用的 URL 的 IP 地址。

关于jquery - 为什么通过 ssl 托管在 iis 中的 wcf web 服务。结果是 "403 forbidden"? Jquery $.post 发送 OPTIONS 动词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1478680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com