Korzystam sobie z takiego kodu (chyba dość standardowy):
var sendRequest, handleResponse; sendRequest = function (queryString) { var xhr = createXHR(); if (xhr) { xhr.open("POST", "http://localhost:3000/ajax/", true); xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr.onreadystatechange = function () { handleResponse(xhr); }; xhr.send(queryString); } }; handleResponse = function (xhr) { if (xhr.readyState === 4 && xhr.status === 200) { var msgbox = document.getElementById("msg"); msgbox.innerHTML = xhr.responseText; } }; function setOrder(){ var url = 'cos'; sendRequest(url); }
W skrócie - jest to galeria zdjęć i funkcja setOrder przekazuje kolejność zdjęć (po zmianie), ale nie jest to istotne. W chwili obecnej po wywołaniu setOrder() komunikat zwrotny wyświetlam w funkcji handleResponse.
Jednakże na stronie chciałbym korzystać w kilku miejscach z Ajaxa, czyli wywoływać kilka funkcji. Co za tym idzie - chciałbym, aby kod dotyczący konkretnej odpowiedzi (czyli np. msgbox.innerHTML = xhr.responseText; ) był w funkcji wywoływanej, a w handleResponse uzyskać tylko i wyłącznie wartość odbieraną.
Czy tak się da? Nie ukrywam, że świadomego używania JS i ajaxa dopiero się uczę.