Files
30-seconds-of-code/snippets/httpPost.md
30secondsofcode 1adec8ce3f Travis build: 1187
2018-01-11 11:53:19 +00:00

52 lines
1.2 KiB
Markdown

### httpPost
Makes a `POST` request to the passed 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 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, 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 = () => callback(request.responseText);
request.onerror = () => err(request);
request.send(data);
};
```
```js
const newPost = {
"userId": 1,
"id": 1337,
"title": "Foo",
"body": "bar bar bar"
};
const data = JSON.stringify(newPost);
httpPost('https://jsonplaceholder.typicode.com/posts', console.log, data; /*
Logs: {
"userId": 1,
"id": 1337,
"title": "Foo",
"body": "bar bar bar"
}
*/
```