Προς το περιεχόμενο

Αποστολή δεδομένων με μέθοδο POST


k.tnb

Προτεινόμενες αναρτήσεις

Δημοσ.

Έχω ένα scriptaki σε Javascript το οποίο συλλέγει πληροφορίες από δυο textBoxes μιας ιστοσελίδας και τα στέλνει σε μια άλλη σελίδα .aspx για επεξεργασία. Το έχω υλοποιήσει με τη μέθοδο GET αλλά θα ήθελα να γίνεται με POST. Το πρόβλημα που αντιμετωπίζω στη μέθοδο POST είναι στην επικεφαλίδα του μηνύματος.

>xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

Ξέρω οτι αυτού του τύπου η επικεφαλίδα μας λέει οτι τα δεδομένα αποστέλονται σε μορφή υποβολής φόρμας, αλλά εγώ δε έχω φόρμα! Υπάρχει κάποια αλλαγή που μπορώ να κάνω;

Δημοσ.

Δες αυτή τη σελίδα.

http://www.openjs.com/articles/ajax_xmlhttp_using_post.php

Δεν χρειάζεται να έχεις φόρμα, απλώς να στείλεις τα δεδομένα σύμφωνα με το πρωτόκολλο http, όπως θα έστελνε ο browser τα δεδομένα μιας φόρμας.

Με λίγα λόγια, για να στείλεις π.χ. τις τιμές 2 textbox, ένα με όνομα (name) text1 και ένα με όνομα text2, στη σελίδα http://localhost/something.aspx, θα κάνεις αυτό:

>
var http=new XMLHttpRequest();
var params = "text1="+document.getElementsByName("text1")[0].value+"&text2="+document.getElementsByName("text2")[0].value;
http.open("POST", "http://localhost/something.aspx", true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.send(params);

(Δεδομένου ότι δεν υπάρχουν άλλα στοιχεία με όνομα text1/text2)

Δημοσ.

Γιατί χρησιμοποιείς javascript αν δουλεύεις σε ASP.NET;

 

Σε ASP.NET xρησιμοποίησε Content για να περάσεις τις τιμές του textbox σε μεταβλητές, Server.Transfer μέθοδο για να πας στην καλέσεις την επόμενη σελίδα, και ανακτησέ τες.

 

Context.Items.Add("ονομα-μεταβλητης", textBox.text.Tostring)

 

Από ένα για το καθένα textbox.

Καλείς την σελίδα με

 

Server.Transfer(String, True) όπου string το όνομα της σελίδας.

 

και στην επόμενη σελίδα τα ανακτάς με

 

Context.Items("ονομα-μεταβλητης") βάλτο σε μια μεταβλητή να συνεχίσεις την δουλειά σου.

 

Τέλος, καθαρά πράγματα.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...