From 4b906d2094838db0d2f7c34bb0a41e4aa7e5ec17 Mon Sep 17 00:00:00 2001 From: Angelos Chalaris Date: Wed, 10 Jan 2018 21:31:28 +0200 Subject: [PATCH] Update httpPost.md --- snippets/httpPost.md | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/snippets/httpPost.md b/snippets/httpPost.md index ffa11a633..f0f7426da 100644 --- a/snippets/httpPost.md +++ b/snippets/httpPost.md @@ -2,29 +2,38 @@ Makes a `POST` request to the passed URL. -Use `XMLHttpRequest` web api to make a `post` request to the given `url`. +Use [`XMLHttpRequest`](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest) web api to make a `post` request to the given `url`. Set the value of an `HTTP` request header with `setRequestHeader` method. -Handle the `onload` event, by console logging the `responseText`. +Handle the `onload` event, by calling the given `callback` the `responseText`. Handle the `onerror` event, by running the provided `err` function. +Omit the third argument, `data`, to send no data to the provided `url`. +Omit the fourth argument, `err`, to log errors to the console's `error` stream by default. ```js -const httpPost = (url, data, err = console.error) => { +const httpPost = (url, callback, data = null, err = console.error) => { const request = new XMLHttpRequest(); request.open("POST", url, true); request.setRequestHeader('Content-type','application/json; charset=utf-8'); - request.onload = () => console.log(request.responseText); + request.onload = () => callback(request.responseText); request.onerror = () => err(request); request.send(data); }; ``` ```js -const user = { - name: "Foo", - password: "fooBar" +const newPost = { + "userId": 1, + "id": 1337, + "title": "Foo", + "body": "bar bar bar" }; -const data = JSON.stringify(user); -httpPost('https://website.com/posts', data, request => { - console.log(request.responseText); -}); // '' +const data = JSON.stringify(newPost); +httpPost('https://website.com/posts', console.log, data; /* +Logs: { + "userId": 1, + "id": 1337, + "title": "Foo", + "body": "bar bar bar" +} +*/ ```