解决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年10月20日
  • MT4-MQL4语言EA自动交易编程入门到精通[通俗易懂]

    MT4-MQL4语言EA自动交易编程入门到精通[通俗易懂]MT4-MQL4语言EA自动交易编程入门到精通

    2022年5月30日
  • svn 配置文件_svn环境配置

    svn 配置文件_svn环境配置SVN配置文件说明svnserve是SVN自带的一个轻型服务器,SVN用户端通过使用以svn://或svn+ssh://为前缀的URL来访问svnserve服务器,实现远程访问SVN版本库。svnserve可以通过配置文件来设置用户和口令,以及按路径控制版本库访问权限。本文详细分析了svnserve配置文件格式,并说明如何使用配置文件控制版本库访问权限。一、svnserve配置文件概述svnserve配置文件通常由以下3个文本文件组成:svn服务配置文件,该文件版…

    2022年9月13日
  • golang 实现HTTP代理和反向代理

    golang 实现HTTP代理和反向代理代理的核心功能可以用一句话概括:接受客户端的请求,转发到后端服务器,获得应答之后返回给客户端。下图是《HTTP权威指南》一书中给出的图例,可以很清晰地说明这一流程:代理的功能有很多,事实上整个互联网到处都充斥着代理服务器。如果所有的HTTP访问都是客户端和服务器端直接进行的话,我们的网络不仅会变得缓慢,而且性能会大打折扣。代理服务器根据不同的配置和使用,可能会有不同的功能,这些…

    2022年7月16日
  • vue怎么关闭eslint_如何关闭eslint

    vue怎么关闭eslint_如何关闭eslint@[TOC]VUE关闭eslint严格模式VUE关闭eslint严格模式如果在使用vue@cli搭建vue工程时,不小心选择了eslint严格校验模式,对于开发人员调试代码是很麻烦的事,那么如何关掉eslint严格模式呢?1.在package.json文件下找到eslint配置”eslintConfig”:{“root”:true,”env”:{“node”:true},”extends”:[“plugin:vu

    2022年10月8日
  • bm3d对比NL-Means去噪算法分析

    bm3d对比NL-Means去噪算法分析这篇文章写的特别好,就记录一下。转载地址:http://wenhuix.github.io/research/denoise.html噪声模型 图像中噪声的来源有许多种,这些噪声来源于图像采集、传输、压缩等各个方面。噪声的种类也各不相同,比如椒盐噪声,高斯噪声等,针对不同的噪声有不同的处理算法。对于输入的带有噪声的图像v(x),其加性噪声可以用一

    2022年5月7日

发表回复

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

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