Erhalte immer das selbe XML
nimble
- javascript
Hi
Ich schaffe es irgendwie nicht POST Infromationen zu übertragen:
var resObjekt = new ActiveXObject("Microsoft.XMLHTTP");
this.getXml = function(theOptions)
{
alert(theOption);
resObjekt.open('post', 'request', false);
resObjekt.send("options="+theOptions);
alert(resObjekt.responseText);
return resObjekt.responseXML;
}
Der Server soll jetzt diese option auslesen:
String options = request.getParameter("options");
response.setContentType("text/xml");
PrintWriter out = response.getWriter();
out.print(controller.newRequest(options).toString());
out.close();
------------------
public String newRequest(String options)
{
StringBuffer optionBuffer = new StringBuffer();
optionBuffer.append(options);
System.out.println(optionBuffer.toString());
}
im Logfile kann ich nun sehen, dass die Option immer "" ist...
Das Problem muss an der übermittlung liegen, nur wie sende ich eie POST Parameter richtig?
THX
------------------------------
lieber ein Pinguin der läuft
als ein Fenster das hängt
------------------------------
n'abend,
Ich schaffe es irgendwie nicht POST Infromationen zu übertragen:
soweit ich das mit den Servlets bisher verstanden habe, gibts da eine methode doPost() (o.ä.), die aufgerufen wird, wenn ein POST-Request reinkommt. Da du - wie weiter unten - in deinem Log einen Eintrag über den Request bekommen hast, wird der POST-Request wohl durchgegangen sein.
var resObjekt = new ActiveXObject("Microsoft.XMLHTTP");
this.getXml = function(theOptions)
{
alert(theOption);
resObjekt.open('post', 'request', false);
resObjekt.send("options="+theOptions);
alert(resObjekt.responseText);
return resObjekt.responseXML;
}
Einmal steht hier theOption und einmal theOptions - ist das beabsichtigt?
> im Logfile kann ich nun sehen, dass die Option immer "" ist...
> Das Problem muss an der übermittlung liegen, nur wie sende ich eie POST Parameter richtig?
In meinem [remoteCommunicator](http://rodneyrehm.de/tools/remotecommunicator) behandle ich POST-Requests folgendermaßen:
~~~javascript
req.open("POST", url, true);
var ctSent = false;
for(var i=0; i<requestHeaders.length;i++)
{
req.setRequestHeader(requestHeaders[i][0], requestHeaders[i][1]);
if(requestHeaders[i][0].toLower() == 'content-type')
ctSent = true;
}
if(!ctSent) req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
req.setRequestHeader( 'Content-length', data.length );
req.send(data);
Ich hab da noch eine extra Behandlung für (weitere) requestHeader drin.
Die kannst du durchaus weglassen. Wichtig sind aber ein gesetzter content-type und content-length.
weiterhin schönen abend...
hi,
Das Problem muss an der übermittlung liegen, nur wie sende ich eie POST Parameter richtig?
So, wie es ein Browser auch tut - Formulardaten als "application/x-www-form-urlencoded" übermitteln.
Also zwischen open und send noch die Methode setRequestHeader() des XMLHTTPRequest-Objektes aufrufen, und damit eben diesen Content-Type Header übermitteln.
Und die zu übermittelnden Daten noch entsprechend kodieren, sofern nicht schon geschehen.
gruß,
wahsaga