Die Informationen verwenden, die in XMLHttpRequest.send(string)

Ich bin das senden einer POST-Anfrage mit einem string in der .send() Teil "id=jeff&command=test".

Wie kann ich analysieren, und verwenden Sie diese Werte in Java über die HttpServletRequest Objekt?

Ich habe versucht, die änderung der content-type text/html und application/x-www-form-urlencoded.
Meine java-server embedded jetty btw.

var text = form.command.value;
var xmlhttp = new XMLHttpRequest();

    xmlhttp.onreadystatechange=function()
    {
          if (xmlhttp.readyState==4 && xmlhttp.status==200)
          {
            xmlhttp.responseText
          }
        }

    xmlhttp.open("POST", 'go', true);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.send("id=jeff&command=" + text);

hier mein Java-code

public class GoHandler extends HttpServlet 
{
Commands c = Commands.getInstance();
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException
{
    BufferedReader reader = request.getReader();
    String str = "";
    while ((str = reader.readLine()) != null)
    {
        System.out.println(str);
    }

    String p = request.getParameter("id");
    String input = request.getParameter("command"); 
    System.out.print(p);

hier ist meine Ausgabe, wenn ich die Anfrage von einem browser

id=jeff&command=test (dies ist aus der buffered reader)

null (das ist von meinem String p der sollte die id)

hier ist Chrome ' s toolkit Ding..

Request URL:http://localhost:8080/go
Request Method:POST
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:20
Content-Type:application/xml
Host:localhost:8080
Origin:http://localhost:8080
Referer:http://localhost:8080/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko)     Chrome/22.0.1229.79 Safari/537.4
Request Payload
id=jeff&command=test
Response Headersview source
Content-Length:66
Content-Type:application/json;charset=utf-8
Server:Jetty(8.1.7.v20120910)

meiner Antwort vom server

{"flavor":"You are in the goHandler"}
Zeigen Sie Ihre Ajax-Aufruf, so dass wir sicherstellen können, dass die Anfrage korrekt eingerichtet ist.
Auf der server-Seite, was bedeutet httpServletRequest.getParameter("id") zurück?
String p = request.getParameter("id"); System.aus.print(p); dieser Druck null
Warum nutzen Sie nicht-standard-JavaScript-Bibliotheken wie jQuery?! 🙂 Diese ein bisschen Probleme sind Häufig in nativen JS und die frameworks bieten eine einfache Möglichkeit, diese Adresse auch die cross-browser-Probleme. Sagen wir, die oben genannten JS-code funktioniert nicht in alten IE-Browsern (bcoz XMLHttpRequest ist es nicht).
Mein Problem ist nicht mit javascript sein mit dem server abrufen der Eigenschaften die Art und Weise sein soll (mit getPeoperty(string) ) die post-Anfragen gesendet von android-code in das Ende, so javascript und Browsern kein Problem sein. Ich bin nur verwenden, um den test-server anfordert.

InformationsquelleAutor Jeff Engebretsen | 2012-10-08

Schreibe einen Kommentar