2017-04-20 24 views
0

我正在開發沒有任何框架的簡單應用程序。如何從簡單的ES6應用程序進行Http操作

我該如何做簡單的Http請求(get/post)?

我瞭解的XMLHttpRequest():

var xhr = new XMLHttpRequest(); 

xhr.open('GET', 'phones.json', false); 

xhr.send(); 

if (xhr.status != 200) { 

    alert(xhr.status + ': ' + xhr.statusText); 
} else { 
    alert(xhr.responseText); 
} 

但也許有另一種方式?

  • 請不要任何圖書館。

回答

1

嗯,據我所知,在es6 specifications沒有什麼改變了XMLHttpRequest API以使它更容易,所以這對你的問題來說不是問題。

你還是得寫上幾行,使之更加「ES6風格」,像promisifying它例如like here

const request = (params) => { 
    return new Promise((resolve, reject) => { 
     const xhr = new XMLHttpRequest(); 
     xhr.open(params.method || "GET", params.url); 
     if (params.headers) { 
      Object.keys(params.headers).forEach(key => { 
       xhr.setRequestHeader(key, params.headers[key]); 
      }); 
     } 
     xhr.onload =() => { 
      if (xhr.status >= 200 && xhr.status < 300) { 
       resolve(xhr.response); 
      } else { 
       reject(xhr.statusText); 
      } 
     }; 
     xhr.onerror =() => reject(xhr.statusText); 
     xhr.send(params.body); 
    }); 
}; 
相關問題