嗯,我希望一切都能顺利完成。但当然不是。新问题是以下消息:
请求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);
}
答案 0 :(得分:3)
您应该通过rowData
方法在请求正文中发布send
。因此,不要发布到"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);