Zurück-Button *
* früher, heute nicht mehr
const states = ['nicht init.', 'lade', 'geladen', 'interaktiv', 'fertig'];
const http_request = new XMLHttpRequest();
http_request.onreadystatechange = () => {
alert(states[http_request.readyState]);
};
http_request.open('GET', 'http://domain.de/folder/file.php', true);
http_request.send(null);
// auch wichtig
http_request.responseText // Antwort des Servers als Textstring
http_request.readyState == 4 // fertig
http_request.status == 200 // alles ok
Quelle: AJAX-Einführung
httpRequest.onreadystatechange = () => { alert(":-)"); };
httpRequest.open('POST', url);
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
httpRequest.send('userName=' + encodeURIComponent(userName));
// andere Funktionen
httpRequest.open(method, url, async, user, password);
httpRequest.withCredentials = true // Cookies oder Auth-Infos mitschicken
httpRequest.abort();
httpRequest.setRequestHeader(name, value);
httpRequest.getResponseHeader(name);
httpRequest.getAllResponseHeaders();
Quelle: AJAX-Einführung
function callMe(text) {
alert("Dateiinhalt: " + text);
// andernfalls JSON.parse(text);
}
var script = document.createElement("script");
script.src = "/path/to/my.js";
document.body.appendChild(script);
// my.js
callMe("Lorem ipsum dolor sit amet");
Access-Control-Allow-Origin: http://example.de
Access-Control-Expose-Headers: X-Custom-Header, X-Another-Header
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: HEAD, PUT, DELETE
fetch
fetch('/some/url')
.then(response => {
// success
}).catch(err => {
// something went wrong
});
Quelle: deanhume.com
fetch
async function getUser() {
try {
const response = await fetch('https://api.example.com/user/1');
const data = await response.json();
console.log(data);
} catch (error) {
console.error('Error fetching user:', error);
}
}
fetch
async function createPost(title, content) {
try {
const response = await fetch('https://api.example.com/posts', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ title, content })
});
if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);
const data = await response.json();
return data;
} catch (error) {
console.error('Error creating post:', error);
throw error;
}
}