XMLHttpRequest请求URI太大(414)
问题描述:
那么我希望一切都会最终正常工作。但它当然不是。新的问题是以下消息:XMLHttpRequest请求URI太大(414)
请求URI太大
请求的URL的长度超过此服务器的 容量限制。
我的恐惧是我必须找到另一种传输数据的方法,或者是一种解决方案吗?
代码XHR功能:
function makeXHR(recordData)
{
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
var rowData = "?q=" + recordData;
xmlhttp.open("POST", "insertRowData.php"+rowData, true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-Length",rowData.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.onreadystatechange = function()
{
if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
alert("Records were saved successfully!");
}
}
xmlhttp.send(null);
}
答
你应该通过send
方法在请求主体立柱rowData
。因此,不要发布到"insertRowData.php" + rowData
,而要发布到"insertRowData.php"
,并将rowData
中的数据传递到send
。
我怀疑你的rowData
是带问号的查询字符串。如果是这样的话,那么邮件正文只是rowData
没有前置问号。
编辑:像这样的东西应该工作:
var body = "q=" + encodeURIComponent(recordData);
xmlhttp.open("POST", "insertRowData.php", true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.onreadystatechange = // ...
xmlhttp.send(body);
喜。我试过你的代码,但现在我没有得到我的PHP脚本中的数据: PHP: $ q = $ _GET [“q”]; \t echo $ q; – user366121 2010-06-16 13:31:45
@usurper:你需要使用'$ _POST'超全局数组:'$ q = $ _POST ['q']; echo htmlspecialchars($ q);' – 2010-06-16 14:26:51
hmmm。这是我使用$ q = $ _POST ['q']后得到的结果:: 未定义变量:q – user366121 2010-06-16 14:48:58