function myAxios ( config ) { return new Promise ( ( resolve, reject ) => { const xhr = new XMLHttpRequest ( ) if ( config. params) { config. url += ` ? ${ new URLSearchParams ( config. params) . toString ( ) } ` } xhr. open ( config. method || "GET" , config. url) xhr. addEventListener ( "loadend" , ( ) => { if ( xhr. status >= 200 && xhr. status < 300 ) { resolve ( JSON . parse ( xhr. response) ) } else { reject ( new Error ( xhr. response) ) } } ) if ( config. data) { xhr. setRequestHeader ( "Content-Type" , "application/json" ) xhr. send ( JSON . stringify ( config. data) ) } else { xhr. send ( ) } } ) } myAxios ( { url : "https://ajax.itheima.net/api/register" , method : "post" , data : { username : "mayanan04" , password : "123456" } } ) . then ( ret => { document. querySelector ( "p" ) . innerHTML = ret. message} ) . catch ( err => { document. querySelector ( "p" ) . innerHTML = err. message} )