我正在尝试将数据从表单发送到数据库.这是我正在使用的表单:
<form name="foo" action="form.php" method="POST" id="foo">
<label for="bar">A bar</label>
<input id="bar" name="bar" type="text" value="" />
<input type="submit" value="Send" />
</form>
Run Code Online (Sandbox Code Playgroud)
典型的方法是提交表单,但这会导致浏览器重定向.使用jQuery和Ajax,是否可以捕获所有表单的数据并将其提交给PHP脚本(例如,form.php)?
使用非常简单的缓存语义:如果参数相同(当然URL相同),那么它就是一个命中.那可能吗?推荐的?
我有以下网址重置我的密码:
http://example.com/resetPassword/LtoyURJd5AYuP3KEGg4gx8fvUprT37LBQDlvhg22qjg=.eyJ0b2tlbiI6IiQyeSQxMCRMTlgzU29HdEdOaExsay5yQ1puQ2ZlZ1wvbVNcL09BMDV2SjhcL1wvcHNRNjZaQmRpbWpOdnhGQlciLCJ0aW1lIjoiMjAxNS0xMi0xMVQwOTozOToyOSswMTAwIiwiZW1haWwiOiJsb3JlbS51dC5hbGlxdWFtQGZldWdpYXRwbGFjZXJhdHZlbGl0Lm9yZyJ9
Run Code Online (Sandbox Code Playgroud)
在本地开发机器上它没有任何问题.但是在公共服务器上(托管在亚马逊ec2上)我得到了414 Uri.我试图解决它,但我似乎无法解决这个问题.ps:我已将url替换为example.com
我尝试将以下行添加到/etc/apache2/apache2.conf,vhosts conf.两者同时又分开.是的.我每次都重启apache服务.
LimitRequestLine 8190
Run Code Online (Sandbox Code Playgroud)
此外,当我要求其他长网址没有问题.例如.我重命名为robots.txt,所以我可以请求以下网址:
http://example.com/robotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsr/robotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsroborobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobots.txtrobots.txtrobots.txtrobots.txtrobots.txtrobots.txtrobots.php?test=ok
http://example.com/robotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsr/robotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsroborobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobotsrobots.txtrobots.txtrobots.txtrobots.txtrobots.txtrobots.txtrobots.php
http://example.com/robots.txt?klsadjflkasdjflkdsajflkdsja=sdakjflksadjfoaiwsefnalkfjsdakjflksadjfoaiwsefnalkfjsdakjflksadjfoaiwsefnalkfjsdakjflksadjfoaiwsefnalkfjsdakjflksadjfoaiwsefnalkfjsdakjflksadjfoaiwsefnalkfjsdakjflksadjfoaiwsefnalkfj
Run Code Online (Sandbox Code Playgroud)
我还将robots.txt移动到其他位置并为其制作了重写规则.即便如此,它似乎工作正确.所以mod_rewrite不会成为问题.
当网址变长为+/- 275个字符时,会出现此问题.它使用273的重置链接,更长的是324个字符.我认为机器人长的网址是400个字符.
我似乎也有问题(我不是shure是否相关)我的vhosts没有正确加载.服务器始终重定向到默认路由中定义的路径.不是vhosts.apache2ctl -s输出提供以下内容:
ubuntu@ip-172-31-28-19:~$ apache2ctl -S
VirtualHost configuration:
<ip>:80 example.com (/etc/apache2/apache2.conf:228)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/public"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex proxy: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used
Run Code Online (Sandbox Code Playgroud)
更新2015-12-18 在与我的团队中的其他开发人员讨论时,我们将在亚马逊上为此服务器选择不同的基本映像.似乎有比这更多的问题.所以这个问题已经过时了.
在大型$_GET查询中出现此错误的大小约为9 000个符号(它们分为~10个变量).
Request-URI Too Large
The requested URL's length exceeds the capacity limit for this server.
Run Code Online (Sandbox Code Playgroud)
这个问题的解决方法是什么?
我收到错误"HTTP错误414.请求URL太长." 从以下文章中,我了解到这是由于一个非常长的查询字符串:
http://www.mytecbits.com/microsoft/iis/query-string-too-long
maxQueryStringLength="2097151".这是最大值吗?maxUrl在web.config中设置吗?如果是这样,支持的最大值是多少?我该怎么做才能解决这个错误?
我有在运行时在我的网站上生成的图像,我用html显示它
<img src="data:image/jpeg;base64,<!-- base64 data -->" />
Run Code Online (Sandbox Code Playgroud)
现在,我想让Facebook获取此图像,但如果我对og:image元标记执行相同操作,则facebook调试器会给我一个错误.有解决方案吗
<meta property='og:image' content='data:image/jpeg;base64,<!-- base64 data -->'/>
Run Code Online (Sandbox Code Playgroud)
当然,我想避免永久保存文件,因为它们总是不同的,而且会很快变得过于拥挤
我正在 MVC 平台上工作,并且使用 JSON GET 调用 jqGrid。
我已阅读Request Limits、maxQueryStringLength、maxAllowedContentLength、URL 最大长度并配置web.config如下
<httpRuntime maxRequestLength="2147483647" executionTimeout="1200" requestValidationMode="2.0" maxQueryStringLength="2097151" maxUrlLength ="65536"/>
Run Code Online (Sandbox Code Playgroud)
&
<requestLimits maxUrl ="65536" maxAllowedContentLength="4294967295" maxQueryString ="2097151" />
Run Code Online (Sandbox Code Playgroud)
但它仍然给我错误414 (Request-URI Too Long)。
知道有什么办法可以解决这个问题吗?
编辑:
根据 Rory 的评论,我将 GET 请求更改为 POST。通过更改它应该可以解决问题。可以在这里找到讨论。但是,在更改它并通过ASP.Net Core maxUrlLength后我仍然面临同样的问题
我正在将 Flask 与 Apache 一起使用。当我发送带有长 url(19000+ 个字符)的 GET 请求时,响应是
Status 414: Request-URI Too Large.
Run Code Online (Sandbox Code Playgroud)
我怀疑该请求触发了 awerkzeug RequestURITooLarge Exception或 flask HTTPException。当我直接向 Apache 发送具有类似 url 长度的请求时,没有错误。
有没有办法增加 Flask 处理的最大 url 长度?
我想知道如何POST在PHP中使用请求.我用来$_REQUEST['text']从url获取数据,http://localhost/data.php?text=ABCDEFGH但是如果我通过非常长的文本ERROR : Request-URI Too Long.
if(isset($_REQUEST['text'])){
$parsetext=$_REQUEST['text']; //get data here data > ABCDEFGH
}else{
echo "not valid";
}
Run Code Online (Sandbox Code Playgroud)
请任何人告诉我如何使用POST请求支持长文本.我知道那$_REQUEST是请求GET和POST.
我使用以下代码在javascript中通过xmlhttp发送一个字符串:
function SendPHP(str, callback) {
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
callback(xmlhttp.responseText); //invoke the callback
}
}
xmlhttp.open("GET", "testpost.php?q=" + encodeURIComponent(str), true);
xmlhttp.send();
}
Run Code Online (Sandbox Code Playgroud)
和一些测试PHP:
$q = $_GET['q'];
echo $q;
Run Code Online (Sandbox Code Playgroud)
这工作正常,直到我开始发送更大的字符串,在这种情况下我得到"HTTP/1.1 414 Request-URI Too Long"错误.
经过一番研究后我发现我需要使用"POST".所以我改成了:
xmlhttp.open("POST", "sendmail.php?q=" + str, true);
Run Code Online (Sandbox Code Playgroud)
和:
$q = …Run Code Online (Sandbox Code Playgroud) php ×5
ajax ×3
post ×3
apache ×2
asp.net-mvc ×2
c# ×2
javascript ×2
jquery ×2
amazon-ec2 ×1
apache2.4 ×1
asp.net ×1
base64 ×1
capacity ×1
facebook ×1
flask ×1
get ×1
html ×1
http ×1
http-caching ×1
iis ×1
python ×1
request ×1
url ×1
virtualhost ×1
web-config ×1