如何使用XMLHttpRequest和简单的JavaScript正确发送FormData?

时间:2017-07-15 10:11:26

标签: javascript php ajax

这是表格:

<form id="login_form">
    Login<br/>
    user: <input id="login_user" name="login_user" type="text" /><br/>
    pass: <input id="login_pass" name="login_pass" type="password" /><br/>
    <input type="button" value="Submit" onclick="doStuff(&quot;login&quot;)" />
</form>

这是我使用的js:

function doStuff(doWhat){

    var sendString = new FormData(document.getElementById("login_form"));

    if(window.XMLHttpRequest){
        xmlhttp = new XMLHttpRequest();
    }else{
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.open("POST", "?action="+doWhat, true);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.onreadystatechange = function(){
        if(this.readyState == 4 && this.status == 200){
            //do stuff
        }
    };
    xmlhttp.send(sendString);
}

PHP页面只有echo var_dump($_POST);

如果我这样发送它会返回它,我不知道如何使用:

D:\wamp64\www\test\index.php:18:
array (size=1)
  '------WebKitFormBoundaryubX9lqZJrSEuJwB9
Content-Disposition:_form-data;_name' => string '"login_user"

admin
------WebKitFormBoundaryubX9lqZJrSEuJwB9
Content-Disposition: form-data; name="login_pass"

swordfish
------WebKitFormBoundaryubX9lqZJrSEuJwB9--
' (length=173)

如果我尝试其他任何操作,比如在发送它之前在FormData上使用JSON.stringify()或将内容类型从application/x-www-form-urlencoded更改为multipart/form-data,则只返回一个空数组。我不应该使用jQuery。有没有办法发送可用的东西或让PHP页面能够读取它?

0 个答案:

没有答案