k.tnb Δημοσ. 5 Ιουνίου 2008 Δημοσ. 5 Ιουνίου 2008 Έχω ένα scriptaki σε Javascript το οποίο συλλέγει πληροφορίες από δυο textBoxes μιας ιστοσελίδας και τα στέλνει σε μια άλλη σελίδα .aspx για επεξεργασία. Το έχω υλοποιήσει με τη μέθοδο GET αλλά θα ήθελα να γίνεται με POST. Το πρόβλημα που αντιμετωπίζω στη μέθοδο POST είναι στην επικεφαλίδα του μηνύματος. >xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); Ξέρω οτι αυτού του τύπου η επικεφαλίδα μας λέει οτι τα δεδομένα αποστέλονται σε μορφή υποβολής φόρμας, αλλά εγώ δε έχω φόρμα! Υπάρχει κάποια αλλαγή που μπορώ να κάνω;
Aesmade Δημοσ. 5 Ιουνίου 2008 Δημοσ. 5 Ιουνίου 2008 Δες αυτή τη σελίδα. 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)
Apoll Δημοσ. 5 Ιουνίου 2008 Δημοσ. 5 Ιουνίου 2008 Γιατί χρησιμοποιείς javascript αν δουλεύεις σε ASP.NET; Σε ASP.NET xρησιμοποίησε Content για να περάσεις τις τιμές του textbox σε μεταβλητές, Server.Transfer μέθοδο για να πας στην καλέσεις την επόμενη σελίδα, και ανακτησέ τες. Context.Items.Add("ονομα-μεταβλητης", textBox.text.Tostring) Από ένα για το καθένα textbox. Καλείς την σελίδα με Server.Transfer(String, True) όπου string το όνομα της σελίδας. και στην επόμενη σελίδα τα ανακτάς με Context.Items("ονομα-μεταβλητης") βάλτο σε μια μεταβλητή να συνεχίσεις την δουλειά σου. Τέλος, καθαρά πράγματα.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.