phlox81
Bote des Lichts und Moderator
Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo
|
|
Javascript: JSON per HTTP an Server schicken. |
|
Hallo, habe mir einen kleinen Server gebastelt, welcher auf port 80, localhost läuft.
Versuche nun per JS da JSON daten über HTTP hinzuschicken, aber meine Versuche wollen nicht so richtig funktionieren, und irgendwie hab ich auch keine große Ahnung was ich da genau tue
Mein Code:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="http://www.json.org/json2.js"></script>
<script type="text/javascript">
$(function() {
var frm = $(document.myform);
var dat = JSON.stringify(frm.serializeArray());
//alert("I am about to POST this:\n\n" + dat);
$.post(
frm.attr("action"),
dat,
function(data) {
//alert("Response: " + data);
}
);
});
</script>
</head>
<body>
<form action="http://127.0.0.1" method="get" name="myform">
<input name="firstName" value="harry" />
<input name="lastName" value="tester" />
<input name="toEmail" value="testtest@test.com" />
</form>
</body>
</html>
|
|
Ich bekomme beim Server aber nur den HTTP Header zu sehen, wenn ich es mit get sende, stehen die JSON Daten zwar drin, aber als erstes, und nicht nach dem Header, wie ich es gerne hätte.
Auch ist das HTTP nicht sauber, steht doch da irgendwo her OPTIONS:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
|
handle read_header: OPTIONS / HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.3) Gecko/20090
824 Firefox/3.5.3 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Origin: null
Access-Control-Request-Method: POST
Access-Control-Request-Headers: x-requested-with
|
|
An diesen HTTP Header würde ich gerne die Daten anhängen, wie geht dies in JS?
Würde dies später auch gerne mit JQuery.JSONRequest/getJSON machen, habe aber da auch noch nicht herausgefunden wie ich es korrekt verwenden kann.
Wie geht das korrekt in JS? (bin totaler JS Analphabet
)
phlox
__________________ Intelligenz ist eine Illusion des Menschen
phlox81.de | codenode.de
|
|
05.04.2010 01:05 |
|
|
Misel
Hüter des Kitkat
Dabei seit: 02.11.2002
Beiträge: 1.203
Herkunft: live://home.berlin.d
e
|
|
|
05.04.2010 12:56 |
|
|
phlox81
Bote des Lichts und Moderator
Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo
Themenstarter
|
|
Das beispiel da oben ist doch post.
Per getJSON läuft es jetzt über JQuery, nur das das JSON dann halt teil des Headers ist, und es keinen body gibt.
__________________ Intelligenz ist eine Illusion des Menschen
phlox81.de | codenode.de
|
|
05.04.2010 14:47 |
|
|
Zirias
BlackBoarder
Dabei seit: 11.09.2002
Beiträge: 1.217
Herkunft: /dev/urandom
|
|
Ohne genau zu wissen um was es geht und wenn die Serialisierung in JSON nicht das Problem ist: dem value eines form-elements zuweisen und form.submit() sollte es doch tun
__________________ palmen-it.de
GCS/MU d+(++) s+: a C++ UL++++ P+++$ L+++ !E W+++ N+ o? K? w++$ !O M-- V?
PS+ PE++ Y+ PGP++ t !5 X- R- tv b+ DI++ D+ G e++ h r y+
|
|
08.04.2010 17:47 |
|
|
phlox81
Bote des Lichts und Moderator
Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo
Themenstarter
|
|
Nee, JSON ist mandatory.
Natürlich wäre es auch gut mal einfach einen normalen POST Request einfach so zu loggen, um zu sehen wie das z.b. von Firefox aussieht.
__________________ Intelligenz ist eine Illusion des Menschen
phlox81.de | codenode.de
|
|
09.04.2010 23:05 |
|
|
phlox81
Bote des Lichts und Moderator
Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo
Themenstarter
|
|
Danke, aber das JS interessiert mich dabei nur marginal, schreibe ja eher den Serverpart.
Mir gehts deshalb auch darum das ganze mit jquery zu machen, weil dieses Framework im Webentwicklungsbereich recht verbreitet ist.
Momentan habe ich eine Version, die erstmal zum Testen ausreicht, einen HTTP Parser muss ich dann wohl irgendwann noch dazu machen oder anderswo her einbauen.
__________________ Intelligenz ist eine Illusion des Menschen
phlox81.de | codenode.de
|
|
10.04.2010 22:24 |
|
|
Zirias
BlackBoarder
Dabei seit: 11.09.2002
Beiträge: 1.217
Herkunft: /dev/urandom
|
|
Ok, also ich glaube ich kapiere einfach nicht, was du erreichen willst. Die Daten in deinem kurzen Beispiel-HTML-Form in JSON serialisieren und zum Server schicken?
Warum? :o Alle Welt schickt Formulardaten in application/x-www-urlencodet, das verstehen auch alle serverseitigen Framworks. Aber WENN es unbedingt JSON sein soll, musst du wohl erstmal die Daten mit einer Schleife über die form-Elemente "einsammeln".
Normalerweise verwendet man JSON für den umgekehrten Weg, vom Server zum Client.
__________________ palmen-it.de
GCS/MU d+(++) s+: a C++ UL++++ P+++$ L+++ !E W+++ N+ o? K? w++$ !O M-- V?
PS+ PE++ Y+ PGP++ t !5 X- R- tv b+ DI++ D+ G e++ h r y+
|
|
11.04.2010 09:45 |
|
|
|
|
|