gpt4 book ai didi

angular - Azure Web App HTTP 错误 414 - URL 请求太长

转载 作者:行者123 更新时间:2023-12-03 05:24:04 26 4
gpt4 key购买 nike

我们的 Dot Net Core 5 托管在 Linux Azure Web 应用程序上,其中包含 Angular 12 Web 应用程序。

this.router.navigate([]).then((result) => {
window.open('/flight/flight-book?flightdata=' + encodeURIComponent(this.encryptData(hiddenvalue)), '_blank');
});

现在上面的代码在浏览器上运行时出现错误 - HTTP ERROR 414 - URL Too Long 但在本地主机中运行时工作正常。

我们认为 Azure Web 应用程序正在阻止此 URL 在浏览器上呈现。即使在 web.config 上我们提到了下面的代码,但仍然不起作用。

<system.webServer>
<!-- Here you have other settings related to handlers.-->
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="10485760" maxUrl="1000241" maxQueryString="3002768" />
</requestFiltering>
</security>
</system.webServer>

最佳答案

适用于 Linux 的 Azure 应用服务在容器中运行,因此,如果您向应用服务发送 HTTP 请求,该请求首先由您无法控制的 Azure 上的反向代理服务器处理,然后该请求将转发到容器中的应用程序。容器。您的 web.config 对反向代理没有影响,这是将强制执行 URL 限制的组件。我刚刚测试了它,Linux 应用服务仍然接受的最大查询长度似乎是 8192 个字符

在 Windows 应用服务上,默认情况下限制为 2048 个字符,但在这里您可以直接控制服务器,因此像这样的 web.config...

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<httpRuntime maxUrlLength="32768" maxQueryStringLength="32768" />
</system.web>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxQueryString="32768" />
</requestFiltering>
</security>
</system.webServer>
</configuration>

...将最大 URL 长度设置为 32768 个字符。

正如您刚刚经历的那样,有时浏览器和服务器会定义您无法始终控制的 URL 或查询字符串限制 - 最好将较长的数据移至 HTTP 正文。

关于angular - Azure Web App HTTP 错误 414 - URL 请求太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70262313/

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