解决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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Windows XP密钥–所有版本通用产品密钥集合

    在用秘钥之前,先看下你说安装的镜像是哪个版本的,再找相应的密钥,版本不对应,秘钥可能不管用,我的xp镜像如下:windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070(ED2000.COM).iso找了sp3vol的密钥,激活成功尽管微软已经不再支持WindowsXP更新,但我相信仍然有许多用户因为他们的个人…

    2022年4月15日
    269
  • HTTP的请求方法OPTIONS

    HTTP的请求方法OPTIONS

    2021年10月13日
    62
  • vscode取消注释的快捷键_vscode解除注释

    vscode取消注释的快捷键_vscode解除注释注释CTRL+K+C取消注释CTRL+K+U

    2022年8月15日
    4
  • [WinForm]C# ListView用法详解[通俗易懂]

    [WinForm]C# ListView用法详解[通俗易懂]转载自:http://blog.csdn.net/chen_zw/article/details/7910324#一ListView类1常用的基本属性2常用方法3常用事件二ListView的五种视图Details视图1列表头创建记得需要先创建列表头2添加数据项3显示项4移除某项5行高设置利用imageList实现6清空运行效果largeIcon视图运行效果SmallIcon视图运行效果List视图…

    2022年7月26日
    5
  • 在linux中如何解压.tgz「建议收藏」

    在linux中如何解压.tgz「建议收藏」网上的方法,都不适合我这个粗人!总结一套本仙女的方法哈!比如仙女下载了一个.tgz文件到中然后首先:打开终端1,进入下载路径下,比如我的就是进入Downloads下。输入命令: cdDownloads2,解压到当前文件夹输入:tarzxvf 文件名.tgz-C./    比如我的是:tarzxvfsimple-examples.tgz-C./3,解压到指定文件夹下输入:tar …

    2022年4月20日
    69
  • docker安装bwapp「建议收藏」

    docker安装bwapp「建议收藏」查看Bwapp镜像dockersearchbwapp下载raesene/bwapp镜像:dockerpullraesene/bwapp查看镜像dockerimages运行镜像dockerrun-d-p8080:80929b447efd4d查看运行情况dockerps运行成功后访问IP端口使用浏览器访问http://xxxx:8080/install.phpxxxx为虚拟机对应的ip地址8080为上方run的端口号…

    2022年9月16日
    2

发表回复

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

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