ajax怎么解决报414,关于c#:HTTP错误414。请求URL太长。 asp.net

ajax怎么解决报414,关于c#:HTTP错误414。请求URL太长。 asp.net我收到错误”HTTP错误414。请求URL太长”。从下面的文章中,我了解到这是由于查询字符串很长所致:在web.config中,我有maxQueryStringLength=”2097151″。这是最大值吗?为了解决此问题,我应该在web.config中设置maxUrl吗?如果是这样,支持的最大值是多少?我该怎么办才能解决此错误?是否可以将URL中的某些长字符串替换为整数或Guid?如果…

大家好,又见面了,我是你们的朋友全栈君。

我收到错误” HTTP错误414。请求URL太长”。 从下面的文章中,我了解到这是由于查询字符串很长所致:

在web.config中,我有maxQueryStringLength=”2097151″。 这是最大值吗?

为了解决此问题,我应该在web.config中设置maxUrl吗? 如果是这样,支持的最大值是多少?

我该怎么办才能解决此错误?

是否可以将URL中的某些长字符串替换为整数或Guid? 如果网址中有任何来自有限列表的长字符串变量,那么像这样的某种映射可能会让您缩短网址?

实际上是从http.sys而不是IIS引发此错误。在将请求传递到请求处理管道中的IIS之前,将引发该错误。

要验证这一点,您可以按照https://stackoverflow.com/a/32022511/12484检查HTTP响应标头中的Server标头值。

若要使https.sys接受更长的请求URL而不引发HTTP 414错误,请在服务器PC上的Windows注册表中的Computer HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services HTTP Parameters中,创建一个名称为MaxFieldLength的DWORD类型的值并且值足够大,例如65535。

参考:Windows的Http.sys注册表设置

如果您决定进行更改,那么显然需要在所有环境(包括所有生产服务器)中进行更改,而不仅仅是在本地开发PC上进行。

另外,您的团队用于设置新服务器实例的任何脚本和/或文档都需要进行更新以包括此注册表设置,以便您的团队在设置新产品后的18个月内不要忘记应用此设置。服务器。

最后,请注意,进行此更改可能会对服务器上运行的所有应用程序造成不利的安全后果,因为攻击者提交的大型HTTP请求不会像通常那样在管道中被早期拒绝。

作为绕过http.sys安全性进行此更改的替代方法,请考虑将请求更改为接受HTTP POST而不是HTTP GET,然后将参数放入POST请求正文而不是长URL中。有关此内容的更多讨论,请参阅带有大量查询参数的问题设计RESTful GET API。

如此答案中所述->不同浏览器中URL的最大长度是多少?

URL的允许长度取决于浏览器和服务器的组合。因此,很难确切地说出该URL的长度。答案建议URL中的字符数保持在2000以下。我不知道您的查询字符串为什么这么长。你能缩短吗?在不进一步了解解决方案和查询字符串的情况下,很难给您任何建议。

通常,URL有其长度限制,如果设置此值,可能会暂时解决问题,但请记住,对于较长的url情况,最佳做法是使用表单。具体来说,最好使用POST操作而不是Get。

但是只有GET请求可以加书签。 在web.config中也设置了上述值后,问题也没有解决。

您可以通过URL缩短来实现此目的,这与大型应用程序(例如twitter,google等)中的实现方法相同。 为此,您应该考虑一个数据库表并存储所有详细信息参数,并仅将行的ID(主键)反映给用户以添加书签。 此外,您应该设计一个页面来处理和解析捕获的ID(来自request.QueryString)…希望此解决方案能够解决您的问题

@Midhun:-或您可以做的其他事情是-制作一个只包含get的类; 并设置 属性。 将所需的值分配给此类属性,然后根据需要在ViewState或Session中添加此类,并在您的应用程序中使用它。 因此,您无需将大量数据传递到查询字符串中。 希望这对您有帮助。

只是为了补充,如果您尝试使用大量参数,请使用Request ajax并接收414错误。将dataType属性更改为JSON,然后以POST类型提交。

这解决了我的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136574.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SqlConnection.ConnectionString 属性

    SqlConnection.ConnectionString 属性ConnectionString类似于OLEDB连接字符串,但并不相同。与OLEDB或ADO不同,如果“PersistSecurityInfo”值设置为false(默认值),则返回的连接字符串与用户设置的ConnectionString相同但去除了安全信息。除非将“PersistSecurityInfo”设置为true,否则,SQLServer.NETF

    2022年7月12日
    29
  • 流程引擎概念_虚幻引擎4

    流程引擎概念_虚幻引擎4目录一、流程定义二、查询流程定义三、ID与版本四、挂起流程定义五、流程实例六、执行七、活动实例八、任务与任务定义本部分说明了流程引擎的概念一、流程定义流程定义定义了流程的结构。CamundaBPM使用BPMN2.0作为主要的建模语言,可以将BPMN2.0XML格式部署到流程引擎中。二、查询流程定义List<ProcessDefinition>processDefinitions=repositoryService.createP

    2022年10月20日
    0
  • html背景知识—及基本用法

    html背景知识—及基本用法

    2021年10月2日
    52
  • 常见开源分布式存储系统

    常见开源分布式存储系统系统整体对比对比说明/文件系统TFSFastDFSMogileFSMooseFSGlusterFSCeph开发语言C++CPerlCCC++开源协议GPLV2GPL

    2022年5月1日
    42
  • js将json字符串转换成json对象_json对象转字符串

    js将json字符串转换成json对象_json对象转字符串json简介及json字符串转换成json对象JSON有两种表示结构:对象和数组对象结构以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:”分隔,语法结构如代码 { key1:value1, key2:value2, … } 其中关键字是字符串,而值可以是字符串,数值,true,false,null,对象或数组数组结构以”[”开始,以”]”结束。中间由0或多个以”,”分隔

    2022年10月6日
    0
  • idea激活码2021.10_最新在线免费激活「建议收藏」

    (idea激活码2021.10)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1STL5S9V8F-eyJsaWNlbnNlSWQi…

    2022年3月27日
    63

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号