Javascript 使用ajax的多部分/表单数据不起作用

Javascript 使用ajax的多部分/表单数据不起作用,javascript,php,html,ajax,Javascript,Php,Html,Ajax,我试图使用AJAX模拟一个多部分/表单数据POST表单,但它不起作用,我不知道为什么。我已经查看了一个正常的请求发送的流量,按下提交按钮和我的请求,没有区别。但是,接收页面坚持不检测ajax帖子。出什么事了 这是我的表格: <code> <html> <script> // http://www.w3schools.com/ajax var xmlhttp; if (window.XMLHttpRequest) { // code for IE7+, Fire

我试图使用AJAX模拟一个多部分/表单数据POST表单,但它不起作用,我不知道为什么。我已经查看了一个正常的请求发送的流量,按下提交按钮和我的请求,没有区别。但是,接收页面坚持不检测ajax帖子。出什么事了

这是我的表格:

<code>
<html>
<script>
// http://www.w3schools.com/ajax
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");
}

function submitThis( action_page )
{
    var boundary1; 

    boundary1 = '-----------------------------' + makeid(); 
    xmlhttp.open("POST", action_page, false );
    xmlhttp.setRequestHeader( 'Content-Type', 'multipart/form-data; boundary=' + boundary1 );

    myPostData = "";
    myPostData = myPostData + boundary1 + '\r\n';
    myPostData = myPostData + 'Content-Disposition: form-data; name="textarea_post"' + '\r\n\r\n';
    myPostData = myPostData + 'message1' + '\r\n';
    myPostData = myPostData + boundary1 + '--\r\n';
    xmlhttp.send( myPostData );
} // submitThis

// http://stackoverflow.com/questions/1349404/generate-a-string-of-5-random-characters-in-javascript
function makeid()
{
    var text = "";
    var possible = "0123456789abcdef";

    for( var i=0; i < 16; i++ )
        text += possible.charAt(Math.floor(Math.random() * possible.length));

    return text;
}

</script>
<body>

<h1>Pruebas de iframe</h1>

<form action="test_ajax_post.php" method="post" enctype="multipart/form-data">
<textarea cols="80" name="textarea_post">message1</textarea><br>
<iframe name="iframe_post" width="80%" src="quixote.html">
</iframe><br>
<input type="submit"><br>
<input type="button" value="Send with ajax" onclick="submitThis('test_ajax_post.php')"/>
</form>
</body>

</html>
下面是接收数据test_ajax_post.html的页面,非常简单,很难:

<html>
<body>
<?php
echo "Textarea value: " . $_POST["textarea_post"] . "<br>";
?>
</body>
</html>
问题是,单击“提交”按钮时的响应如下:

<html>
<body>
Textarea value: message1<br></body>
</html>
当我用fiddler嗅探后点击“用ajax发送”按钮时:

<html>
<body>
Textarea value: <br></body>
</html>
缺少textarea的值。我已经检查了结果, 几乎是一点一点,我看不出有什么区别。我做错了什么

注意:使用jQuery或框架不是一个选项,因为我想修改它来发布iFRAME的内容。这是其他事情的第一步


更多信息:该服务器是运行php 5.3.10版的Windows 2003。好吧,这不是最好的情况,但我认为问题并不存在。作为一个客户端,我使用了Chrome和InternetExplorer8

看起来您可能正在覆盖myPostData。第一行请尝试myPostdata=,其余的请尝试myPostdata.=。@Jim,OP正在将每一行与myPostdata以前的内容连接起来,这样部分就完成了变量“message1”的引号是因为我懒得将正确的内容放在textarea中。但是,尽管如此,没有收到任何值+1,因为您花了时间发布了输出,而不是发布了don't workSorry,我的问题文本中有一个错误,我已经粘贴了两次第一个html的代码