jQuery simplifies asynchronous HTTP requests with its powerful AJAX methods, enabling developers to load and exchange data with servers dynamically without requiring a page refresh.
1. AJAX Helper Methods
| Method | Description | Syntax | Example |
|---|---|---|---|
load() |
Loads data from a server and places it into the selected element. | $(selector).load(url, [data], [callback]) |
$("#result").load("example.html #content"); |
$.get() |
Sends an HTTP GET request to retrieve data. | $.get(url, [data], [callback], [dataType]) |
$.get("data.json", function(response) { console.log(response); }); |
$.post() |
Sends an HTTP POST request to send data to the server. | $.post(url, [data], [callback], [dataType]) |
$.post("submit.php", { name: "John" }, function(data) { alert(data); }); |
$.getJSON() |
Sends an HTTP GET request and expects JSON-formatted data as a response. | $.getJSON(url, [data], [callback]) |
$.getJSON("data.json", function(response) { console.log(response); }); |
$.getScript() |
Loads and executes a JavaScript file from the server. | $.getScript(url, [callback]) |
$.getScript("script.js", function() { console.log("Script loaded!"); }); |
2. General $.ajax() Method
The $.ajax() method provides full control over AJAX requests with extensive options.
Syntax
$.ajax({
url: "url",
type: "GET/POST",
dataType: "json/html/xml/text",
data: { key: "value" },
success: function(response) {
// Handle success
},
error: function(xhr, status, error) {
// Handle error
},
complete: function(xhr, status) {
// Always execute after success or error
}
});
Options
| Option | Description |
|---|---|
url |
Specifies the URL to send the request to. |
type |
The HTTP request method (GET, POST, PUT, DELETE, etc.). Default is GET. |
data |
Data to be sent to the server (in key-value pairs or JSON format). |
dataType |
Expected data type of the response (e.g., json, html, xml, text). |
success |
Callback function executed when the request succeeds. |
error |
Callback function executed when the request fails. |
complete |
Callback function executed after the request (both success and error). |
async |
Boolean value to enable/disable asynchronous requests (default is true). |
beforeSend |
A function executed before the request is sent. |
timeout |
Sets a timeout in milliseconds for the request. |
3. AJAX Events
jQuery provides global AJAX event methods that can be used to monitor AJAX requests.
| Event | Description | Example |
|---|---|---|
ajaxStart |
Fires when the first AJAX request is started. | $(document).ajaxStart(function() { console.log("AJAX started!"); }); |
ajaxStop |
Fires when all AJAX requests have completed. | $(document).ajaxStop(function() { console.log("All AJAX requests complete!"); }); |
ajaxSend |
Fires just before an AJAX request is sent. | $(document).ajaxSend(function(event, xhr, options) { console.log("Request sent to: " + options.url); }); |
ajaxComplete |
Fires after an AJAX request completes (success or error). | $(document).ajaxComplete(function(event, xhr, options) { console.log("Completed: " + options.url); }); |
ajaxError |
Fires when an AJAX request fails. | $(document).ajaxError(function(event, xhr, options, error) { console.log("Error: " + error); }); |
ajaxSuccess |
Fires when an AJAX request succeeds. | $(document).ajaxSuccess(function(event, xhr, options) { console.log("Successful: " + options.url); }); |
4. Examples of Common AJAX Scenarios
Basic GET Request
<!DOCTYPE html>
<html>
<head>
<title>AJAX GET Example</title>
<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
<script>
$(document).ready(function() {
$("#loadData").click(function() {
$.get("data.txt", function(response) {
$("#result").html(response);
});
});
});
</script>
</head>
<body>
<button id="loadData">Load Data</button>
<div id="result"></div>
</body>
</html>
Basic POST Request
<!DOCTYPE html>
<html>
<head>
<title>AJAX POST Example</title>
<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
<script>
$(document).ready(function() {
$("#sendData").click(function() {
$.post("submit.php", { name: "John", age: 25 }, function(response) {
$("#result").html(response);
});
});
});
</script>
</head>
<body>
<button id="sendData">Send Data</button>
<div id="result"></div>
</body>
</html>
AJAX with $.ajax()
<!DOCTYPE html>
<html>
<head>
<title>AJAX with $.ajax()</title>
<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
<script>
$(document).ready(function() {
$("#fetchData").click(function() {
$.ajax({
url: "data.json",
type: "GET",
dataType: "json",
success: function(response) {
$("#result").html("Name: " + response.name + ", Age: " + response.age);
},
error: function(xhr, status, error) {
console.error("Error: " + error);
}
});
});
});
</script>
</head>
<body>
<button id="fetchData">Fetch Data</button>
<div id="result"></div>
</body>
</html>
5. Key Points
- Use AJAX helper methods (
get(),post()) for simple cases. - Use
$.ajax()for advanced configurations like timeouts, custom headers, and error handling. - Utilize global AJAX event handlers to monitor requests across the application.
- Always validate and sanitize data sent to the server for security purposes.