解决HTTP 414“请求URI太长”的思路

解决HTTP 414“请求URI太长”的思路参考社区问答https://cloud.tencent.com/developer/ask/963271.不建议改apache的配置在Apache下,限制是一个可配置的值。如果想要支持更长的请求URI,请将此值更改为大于默认值8190的值。该值位于/etc/apache2/apache2.conf中。如果不是,请LimitRequestLine10000在下添加一个新行()AccessFil…

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

参考社区问答https://cloud.tencent.com/developer/ask/96327

1.不建议改apache的配置

在Apache下,限制是一个可配置的值。如果想要支持更长的请求URI,请将此值更改为大于默认值8190的值。该值位于/etc/apache2/apache2.conf中。如果不是,请LimitRequestLine 10000在下添加一个新行()AccessFileName .htaccess。

但是如果实际遇到此限制,可能会先滥用GET。你应该使用POST传输这种数据 - 尤其是因为你甚至承认你正在使用它来更新值。如果你检查上面的链接,你会注意到Apache甚至说:“在正常情况下,值不应该从默认值改变。”

2.主要在后端处理,前端改请求方法

基本上,区别在于GET请求具有一个字符串中的url和参数,然后发送null:

http.open("GET", url+"?"+params, true);
http.send(null);

而POST请求通过单独的命令发送url和参数:

http.open("POST", url, true);
http.send(params);

这是一个工作示例
ajaxPOST.html:

<html>
<head>
<script type="text/javascript">
    function ajaxPOSTTest() {
        try {
            // Opera 8.0+, Firefox, Safari
            ajaxPOSTTestRequest = new XMLHttpRequest();
        } catch (e) {
            // Internet Explorer Browsers
            try {
                ajaxPOSTTestRequest = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    ajaxPOSTTestRequest = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {
                    // Something went wrong
                    alert("Your browser broke!");
                    return false;
                }
            }
        }

        ajaxPOSTTestRequest.onreadystatechange = ajaxCalled_POSTTest;
        var url = "ajaxPOST.php";
        var params = "lorem=ipsum&name=binny";
        ajaxPOSTTestRequest.open("POST", url, true);
        ajaxPOSTTestRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        ajaxPOSTTestRequest.send(params);
    }

    //Create a function that will receive data sent from the server
    function ajaxCalled_POSTTest() {
        if (ajaxPOSTTestRequest.readyState == 4) {
            document.getElementById("output").innerHTML = ajaxPOSTTestRequest.responseText;
        }
    }
</script>

</head>
<body>
    <button onclick="ajaxPOSTTest()">ajax POST Test</button>
    <div id="output"></div>
</body>
</html>

ajaxPOST.php:

<?php

$lorem=$_POST['lorem'];
print $lorem.'<br>';

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

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

(0)
上一篇 2022年4月29日 下午11:40
下一篇 2022年4月29日 下午11:40


相关推荐

  • 【图解经典算法题】如何用一行代码解决约瑟夫环问题

    【图解经典算法题】如何用一行代码解决约瑟夫环问题约瑟夫环问题算是很经典的题了 估计大家都听说过 然后我就在一次笔试中遇到了 下面我就用 3 种方法来详细讲解一下这道题 最后一种方法学了之后保证让你可以让你装逼 问题描述 编号为 1 N 的 N 个士兵围坐在一起形成一个圆圈 从编号为 1 的士兵开始依次报数 1 2 3 这样依次报 数到 m 的士兵会被杀死出列 之后的士兵再从 1 开始报数 直到最后剩下一士兵 求这个士兵的编号 1 方

    2026年3月18日
    6
  • 月之暗面开源 Kimi CLI,国产编程工具生态再升级!

    月之暗面开源 Kimi CLI,国产编程工具生态再升级!

    2026年3月12日
    2
  • 董秘您好,当前OpenClaw龙虾AI智能体热度极高,在舆情监控、量化策略、投研

    董秘您好,当前OpenClaw龙虾AI智能体热度极高,在舆情监控、量化策略、投研

    2026年3月13日
    2
  • Unity AssetBundle介绍

    Unity AssetBundle介绍1.什么是AssetBundle?AssetBundle是一种资源压缩包。资源打包AssetBundle有两个好处:减小安装包的大小,资源可以在进入游戏时候,网络下载。 热更资源,方便修复线上资源问题引起的Bug,或新增加游戏内容。AssetBundle分为两种类型:场景AssetBundle&非场景AssetBundle。2.AssetBundle结构2.1As…

    2022年6月18日
    35
  • java 中static关键字作用

    java 中static关键字作用static 关键字主要有两种作用 第一 为特定数据类型或对象分配单一的存贮空间 而与创建对象的个数无关 第二 希望某个方法或属性与类而不是对象关联在一起 也就是说 在不创建对象的情况下就可以通过类来直接调用方法或使用类的属性 具体而言 static 在 java 中主要有四种使用情况 成员变量 成员方法 代码块及内部类 1 static 成员变量虽然 java 语言中没有全局的概念 但可以通

    2026年3月19日
    2
  • 易文档-快速编写专业漂亮的API文档,产品文档,使用手册

    易文档https://easydoc.top让您轻松编写和维护高质量的文档。从需求文档、API文档、部署文档到使用手册,多种定制文档编辑器,满足您整个开发周期需求;支持接口在线测试,一键生成mock配置。极致的编写体验,优雅的排版,让文档成为一种乐趣。查看示例文档查看使用技巧…

    2022年4月5日
    345

发表回复

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

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