Για να πραγματοποιηθεί η μεταφορά δεδομένων από τον server στον browser, θα πρέπει αρχικά να υπάρχει ένα αίτημα από τον browser. Για να στείλουμε ένα τέτοιο αίτημα χρησιμοποιούμε τις μεθόδους open() και send() του αντικειμένου XMLHttpRequest.

Η μέθοδος open() ανοίγει την επικοινωνία του browser με τον server ορίζοντας τον τύπο της αποστολής του αιτήματος καθώς και το url του αρχείου στον server που θα επεξεργαστεί το αίτημα, ενώ η μέθοδος send() εκτελεί την αποστολή του αιτήματος στον server.

Η μέθοδος open()

Σύνταξη της open()
open(method, url, asynch);

method: μέθοδος αποστολής του αιτήματος, δηλαδή GET ή POST. Η GET είναι απλούστερη και πιο γρήγορη από την POST. Παρ’ όλ’ αυτά η POST πρέπει να χρησιμοποιείται στις εξής περιπτώσεις:
- όταν διαβάζονται δεδομένα από Βάση Δεδομένων
- όταν ανταλλάσσονται μεγάλου όγκου δεδομένα και
- όταν ο χρήστης πρέπει να πληκτρολογήσει κάτι το οποίο μπορεί να περιέχει μη αποδεκτούς χαρακτήρες

url: το url του αρχείου στον server που θα επεξεργαστεί το αίτημα και θα επιστρέψει ένα αποτέλεσμα. Το αρχείο μπορεί να είναι οτιδήποτε είδους αρχείου, όπως .txt και .xml ή ένα server scripting αρχείο (όπως php ή asp) το οποίο θα επεξεργαστεί το αίτημα και θα επιστρέψει ένα αποτέλεσμα.

asynch: η παράμετρος αυτή παίρνει την τιμή true όταν θέλουμε η αποστολή να γίνει ασύγχρονα (asynchronous) και την τιμή false όταν θέλουμε να γίνει μη-ασύγχρονα. Ουσιαστικά για να εκμεταλλευτούμε την ασύγχρονη επικοινωνία - που είναι και η κύρια ιδιότητα της AJAX – θέτουμε την τιμή true. Ο ασύγχρονος τρόπος επικοινωνίας σημαίνει ότι ο browser δεν περιμένει να εδραιωθεί και να ολοκληρωθεί η επικοινωνία με τον server χωρίς να κάνει τίποτε άλλο, αλλά αντίθετα εκτελεί άλλα scripts της ιστοσελίδας με αποτέλεσμα να φορτώνουν όλα τα άλλα μέρη της. Η τιμή false δεν προτείνεται ως καλή λύση, καθώς ο browser δεν θα φορτώσει κανένα άλλο script της ιστοσελίδας παρά μόνο όταν ολοκληρώσει επιτυχώς την σύνδεση του με τον browser.

Η μέθοδος send()

Σύνταξη της send()
send(string);
string: όταν πρόκειται για αποστολή τύπου post τότε τοποθετούμε τις παραμέτρους μαζί με τις τιμές τους χωρισμένες με το σύμβολο &. Δείτε στο τέλος αυτής της ενότητας παραδείγματα σύνταξης της open() και send().


Παραδείγματα χρήσης μεθόδων open() και send()

Αποστολή δεδομένων με την μέθοδο get
xmlhttp.open("GET","demo_get2.asp?fname=Henry&lname=Ford",true);
xmlhttp.send();

Αποστολή δεδομένων με την μέθοδο post
xmlhttp.open("POST","demo_post.asp",true);
xmlhttp.send();

Αποστολή δεδομένων σε μορφή html φόρμας
xmlhttp.open("POST","ajax_test.asp",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&name=Ford");
Pin It