function jsonPost(url, data) { return new Promise((resolve, reject) => { const x = new XMLHttpRequest(); x.onerror = () => reject(new Error('jsonPost failed')) //x.setRequestHeader('Content-Type', 'application/json'); x.open("POST", url, true); x.send(JSON.stringify(data)) x.onreadystatechange = () => { if (x.readyState === XMLHttpRequest.DONE && x.status === 200){ resolve(JSON.parse(x.responseText)) } else if (x.status !== 200){ reject(new Error('status is not 200')) } } }); } const url = "http://students.a-level.com.ua:10012"; sendButton.addEventListener('click', () => { let nickValue = nickInput.value; let messageValue = messageInput.value; const newPost = jsonPost(url, { func: 'addMessage', nick: nickValue, message: messageValue } ); newPost.then(data => console.log(data.nextMessageId)) });