Gelecekteki internet araştırıcıları:
Yeni tarayıcılar için (2018 itibariyle: Chrome, Firefox, Safari, Opera, Edge ve çoğu mobil tarayıcı, ancak IE değil), fetch
eşzamansız ağ çağrılarını ( XMLHttpRequest
eskiden ihtiyaç duyduğumuz veya jQuery'lere $.ajax
) basitleştiren standart bir API'dir .
İşte geleneksel bir biçim:
<form id="myFormId" action="/api/process/form" method="post">
<!-- form fields here -->
<button type="submit">SubmitAction</button>
</form>
Yukarıdaki gibi bir form size verilirse (veya onu anlamsal html olduğu için oluşturduysanız), fetch
kodu aşağıdaki gibi bir olay dinleyicisine sarabilirsiniz :
document.forms['myFormId'].addEventListener('submit', (event) => {
event.preventDefault();
// TODO do something here to show user that form is being submitted
fetch(event.target.action, {
method: 'POST',
body: new URLSearchParams(new FormData(event.target)) // event.target is the form
}).then((resp) => {
return resp.json(); // or resp.text() or whatever the server sends
}).then((body) => {
// TODO handle body
}).catch((error) => {
// TODO handle error
});
});
(Veya, orijinal poster gibi, onu bir gönderme olayı olmadan manuel olarak çağırmak istiyorsanız, fetch
kodu oraya koyun ve form
kullanmak yerine öğeye bir referans verin event.target
.)
Dokümanlar:
Getirme:
https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API
Diğer:
https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Sending_forms_through_JavaScript 2018'deki
bu sayfada (henüz) getirmeden bahsedilmiyor. Ancak target = "myIFrame" hilesinin kullanımdan kaldırıldığından bahsediyor. Ayrıca 'submit' olayı için bir form.addEventListener örneğine de sahiptir.