XMLHttpRequest Object
AJAX ជា​អក្សរ​កាត់​មក​ពី​ពាក្យ​ថា Asynchronous JavaScript And XML ដែល​ជា​បច្ចេកទេស​មួយ​ ដែល​ត្រូវ​បាន​បង្កើត​ឡើង​ក្នុង​គោល​បំណង​ធ្វើការទាក់ទង​ជាមួយ​នឹង server ​ដើម្បី​ទទួល​យក​ទិន្នន័យ​ផ្សេង​ៗ​ពី server មក​ប្រើប្រាស់​និង​ឬ​សរសេរ​បង្ហាញ​នៅ​លើ​ផ្នែក​ខ្លះ​នៃ browser ដោយ​មិន​ចាំបាច់ refresh browser ។


យ៉ាងណាម៉ិញ នៅ​ក្នុង​កម្មវិធី​គេហទំព័រ ពាក្យ​ថា asynchronous request មាន​ន័យ​ថា​ជា​សំណើរ​ទាំងឡាយ​ធ្វើ​ឡើង​ដោយ​កូដ​ជា​ភាសា JS ទៅ​កាន់ server ដើម្បី​ទទួល​បាន​នូវ​ទិន្នន័យ​ទាំងឡាយ យក​មក​សរសេរ​បង្ហាញ​នៅ​លើ​ផ្នែក​ផ្សេង​ៗ​នៃ browser ។ ក៏ប៉ុន្តែ នៅ​ពេល​ដែល​ធ្វើ​សំណើរ​ទៅ​កាន់ browser រួច​ហើយ កូដ​ជា​ភាសា js បន្ត​ដំណើរការ​ទៅ​មុខ​ទៀត​បណ្តើរ និង​រង់​ចាំ​ទទួល​យក​លទ្ធផល​ពី server បណ្តើរ​។ ពោល​គឺ​ខុស​ពី synchronous request ដែល​តំរូវ​អោយ​កូដ​ជា​ភាសា JS ត្រូវ​ឈប់​រង់​ចាំ​រហូត​ដល់ server បញ្ជូន​លទ្ធផល​ត្រឡប់​មក​វិញ ទើប​ដំណើរការ​ទៅ​មុខ​ទៀត​។

ជាទូទៅ ការប្រើប្រាស់​បច្ចេកទេស AJAX ក្នុង​ការធ្វើ​សំណើរ​ទៅ​កាន់ server ទាមទារ​ចាំបាច់​អោយ​យើង​ត្រូវ​បង្កើត​វត្ថុ​ដែល​ជា​សិស្ស​នៃ​ថ្នាក់ XMLHttpRequest ជាមុន​សិន ដោយ​ធ្វើ​ដូច​ខាង​ក្រោម​នេះ​៖
var xhttp = new XMLHttpRequest();
សំរាប់ browser ជំនាន់​មុន ដូចជា Internet Explorer (IE5 and IE6) ជា​ដើម យើង​ចាំបាច់​ត្រូវ​ធ្វើ​ដូច​ខាង​ក្រោម​នេះ៖
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
សរុបមក ដើម្បី​បង្កើត​វត្ថុ​នៃ​ថ្នាក់ XMLHttpRequest ដែល​នឹង​អាច​ដំណើការ​ទៅ​បាន​នៅ​ក្នុង browser គ្រប់​ប្រភេទ​ទាំងអស់ យើង​ចាំបាច់​ត្រូវ​សរសេរ​កូដ​ដូច​ខាង​ក្រោម​នេះ៖
if (window.XMLHttpRequest) {
    // កូដ​សំរាប់​ browser សម័យ​ទំនើប
    xmlhttp = new XMLHttpRequest();
 } else {
    // កូដ​សំរាប់ IE browsers
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
XMLHttpRequest Object Methods
Method Description
new XMLHttpRequest() Creates a new XMLHttpRequest object
abort() Cancels the current request
getAllResponseHeaders() Returns header information
getResponseHeader() Returns specific header information
open(method,url,async,user,psw) Specifies the request
method: the request type GET or POST
url: the file location
async: true (asynchronous) or false (synchronous)
user: optional user name
psw: optional password
send() Sends the request to the server
Used for GET requests
send(string) Sends the request to the server
Used for POST requests
setRequestHeader() Adds a label/value pair to the header to be sent

XMLHttpRequest Object Properties
Property Description
onreadystatechange Defines a function to be called when the readyState property changes
readyState Holds the status of the XMLHttpRequest
0: request not initialized
1: server connection established
2: request received
3: processing request
4: request finished and response is ready
responseText Returns the response data as a string
responseXML Returns the response data as XML data
status Returns the status-number of a request
200: "OK"
403: "Forbidden"
404: "Not Found"
For a complete list go to the Http Messages Reference
statusText Returns the status-text (e.g. "OK" or "Not Found")