我试图使用ajax xmlhttprequest post方法将一些html数据发送到PHP脚本.但由于某些原因,我的XHR POST REQUEST被切断,并且并非所有数据都被传输到我的doit.PHP脚本.然而,来自textarea表单的相同html数据通过普通的表单post方法正确传递给doit.PHP脚本!你能帮助我克服这个问题并能通过xhr请求传递这个HTML数据吗?
var xmlhttp;
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)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","http://www.mysite.com/doit.PHP?Name=test&Id=12345",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("outputtext="+siteContents);
解决方法:
我想你也应该encodeURIComponent()你的siteContents字符串:
xmlhttp.send("outputtext=" + encodeURIComponent(siteContents));
这是因为POST变量由&符号(&)分隔.问题可能是你的字符串也包含一个&符号,它将被解释为新POST变量的开头.
如果在PHP脚本中输出所有收到的POST变量,则可以轻松检查:
var_dump($_POST);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。