gpt4 book ai didi

Azure网站Rest Api仅接受GET,POST返回403。可能是CORS

转载 作者:行者123 更新时间:2023-12-01 23:03:33 25 4
gpt4 key购买 nike

我遇到了一个奇怪的问题。我有一个在 Azure 应用服务(网站)下运行的 Asp.net Core WebApi 项目。我在Chrome中使用DHC插件。我的服务也在 AAD 上运行。

我可以很好地请求 GET 方法(登录后)。但是,当我请求任何 POST 时,我收到了 403 响应。环顾日志,我可以看到这一点

2016-07-28T08:14:26 PID[x] Verbose Received request: POST https://blahblah.azurewebsites.net/api/build/beep/

2016-07-28T08:14:26 PID[x] Verbose Found 'AppServiceAuthSession' cookie for site 'blah.azurewebsites.net'. Length: 856.

2016-07-28T08:14:26 PID[x] Information Sending response: 403.60 Forbidden

2016-07-28T08:14:26 PID[x] Warning Cross-site request forgery detected for user '[email protected]' from referer ''!

我使用的是 Asp.net Core 1.0。我在代码中启用了 CORS (AllOrigin AllHeader),并且 Azure 网站中的 CORS 有一个“*”条目,该条目应该接受每个来源。日志流似乎甚至没有访问我的网站,但 Azure 中的某些内容阻止了该请求。

有什么帮助吗?

编辑:成功的 GET 方法

2016-07-28T20:24:35 PID[22880] Verbose Received request: GET https://blah.azurewebsites.net/api/build/beep/

2016-07-28T20:24:35 PID[22880] Verbose Found 'AppServiceAuthSession' cookie for site 'blah.azurewebsites.net'. Length: 876.

2016-07-28T20:24:36 PID[22880] Verbose Authenticated b[email protected] successfully using 'Session Cookie' authentication.

最佳答案

看起来您的 JavaScript 客户端被身份验证/授权模块的 CSRF 保护阻止,该保护当前不知道 CORS 配置(它可能应该 - 我会对此进行研究)。

解决此问题的最简单方法是在客户端设置中添加自定义 User-Agent HTTP header 。我们内置的 CSRF 保护会寻找的内容之一是客户端是否是浏览器。几乎所有主要浏览器都使用“Mozilla/...”作为用户代理字符串。将此更改为其他内容,以明确您不是浏览器,并且您的 POST 请求将成功通过。

关于Azure网站Rest Api仅接受GET,POST返回403。可能是CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38630765/

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