1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| function axios(method, url, data={}, params={}) { return new Promise((resolve, reject) => { method = method.toUpperCase() let queryString = "" Object.keys(params).forEach(key => { queryString += `${key}=${params[key]}& ` }) if (queryString) { queryString = queryString.substring(0, queryString.length - 1) url += '?' + queryString } let xhr = new XMLHttpRequest() xhr.open(method, url) if (method === 'GET') { xhr.send() } else if (method === 'POST') { xhr.setRequestHeader( "Content-Type", "application/json;charset=utf-8" ) xhr.send(JSON.stringify(data)) } xhr.onreadystatechange = function () { const { status, statusText } = xhr if (xhr.readyState !== 4) return if (status >= 200 && status < 300) { const response = { data: JSON.parse(request.response), status, statusText } resolve(response) } else { reject(new Error("request error status is " + status)) } } } }
function testPost() { axios({ url: "http://localhost:3000/posts", method: "POST", data: { title: "", author: "", id: 4 } }).then( response => { console.log(response); }, error => { console.log(error.message); } ); }
|