use*_*736 5 html javascript ajax xmlhttprequest
我正在尝试使用 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);
Run Code Online (Sandbox Code Playgroud)
我认为你还应该对你的siteContents字符串进行encodeURIComponent():
xmlhttp.send("outputtext=" + encodeURIComponent(siteContents));
Run Code Online (Sandbox Code Playgroud)
这是因为 POST 变量由 & 符号 ( ) 分隔&。问题可能是您的字符串还包含一个 & 符号,它将被解释为新 POST 变量的开头。
如果您在 PHP 脚本中输出所有收到的 POST 变量,您可以轻松检查这一点:
var_dump($_POST);
Run Code Online (Sandbox Code Playgroud)