javascript - Send a string through an http request -
i starting learn how use xmlhttprequest , started this example w3schools want modify in order send string. new code:
<!doctype html> <html> <head> <script> function loadxmldoc() { var xmlhttp; var str="sent string"; xmlhttp=new xmlhttprequest(); xmlhttp.open("get","ajax_info.txt",true); xmlhttp.send(str); alert(xmlhttp.responsetext); } </script> </head> <body> <div id="mydiv"><h2>let ajax change text</h2></div> <button type="button" onclick="loadxmldoc()">change content</button> </body> </html>
i want output response , see if string sent alert returns nothing. empty window. doing wrong?
also, found example in question adds these lines of code:
http.setrequestheader("content-type", "application/x-www-form-urlencoded"); http.setrequestheader("content-length", params.length); http.setrequestheader("connection", "close");
are necessary? if yes, why? code page sends string code doesn't work me either.
edit: updated code, still doesn't work. tried without sending string still nothing happens. not trying anymore in w3wschools, instead in right place, not have code in function anymore , made changes @quentin told me about:
<script> var xmlhttp=null; var str="sent_string"; xmlhttp=new xmlhttprequest(); xmlhttp.open("post","http://192.168.1.3:80",true); xmlhttp.setrequestheader("content-type", "text/plain"); xmlhttp.setrequestheader("content-length", str.length); xmlhttp.setrequestheader("connection", "close"); xmlhttp.send(str); xmlhttp.addeventlistener('load', function () { alert(this.responsetext); alert(xmlhttp.readystate);} ); </script>
first, aren't waiting http response before try alert value.
alert(xmlhttp.responsetext);
should be:
xmlhttp.addeventlistener('load', function () { alert(this.responsetext); });
second, making request message body. need post (or put) request if want send request body:
xmlhttp.open("post","ajax_info.txt",true);
third, sending plain text request telling server form encoded.
http.setrequestheader("content-type", "application/x-www-form-urlencoded");
should be
xmlhttp.setrequestheader("content-type", "text/plain");
Comments
Post a Comment