[JavaScript] fetch、ajax、axios 基本用法(前後端溝通、串接API)

記錄一下.. 面試或工作、前後端溝通上 (一般 HTML 或 React、Node.js) 都常用到..

我個人是比較喜歡用 axios ~


股票 API (JSON 格式):
https://www.twse.com.tw/exchangeReport/STOCK_DAY?response=json&date=20210702&stockNo=2330

會看到這樣的資料 (json)


如果以上不能用,可以使用這位大哥的 API (text 格式):https://script.google.com/macros/s/AKfycbw5PnzwybI_VoZaHz65TpA5DYuLkxIF-HUGjJ6jRTOje0E6bVo/exec?name=${name}&age=${age}

會看到這樣的資料 (text)

程式撈取結果大概會長這樣



fetch:
1. promise based (可改為 async/await)
2. HTML5 API

  1. let btn = document.querySelector('.btn');
  2. btn.addEventListener('click', () => {
  3. fetch('https://www.twse.com.tw/exchangeReport/STOCK_DAY?response=json&date=20210702&stockNo=2330', {
  4. method: 'GET',
  5. })
  6. .then((response) => {
  7. return response.json();
  8. })
  9. .then((result) => {
  10. console.log(result);
  11. });
  12. });


ajax:
1. xhr based
2. 須引用 jQuery

  1. $('.btn').on('click', () => {
  2. $.ajax({
  3. method: 'GET',
  4. url: 'https://www.twse.com.tw/exchangeReport/STOCK_DAY?response=json&date=20210702',
  5. data: { stockNo: 2330 },
  6. dataType: 'json',
  7. })
  8. .done((data) => {
  9. console.log(data);
  10. })
  11. .fail((error) => {
  12. console.error('error:', error);
  13. })
  14. .always(() => {
  15. console.log('完成');
  16. });
  17. });


axios:
1. promise based (可改為 async/await)
2. 須透過 npm or yarn 安裝 or 引用 cdn,請參考官方

  1. onClick={() => {
  2. axios.get(`https://www.twse.com.tw/exchangeReport/STOCK_DAY?response=json&date=20210702`, {
  3. params: {
  4. stockNo: 2330,
  5. },
  6. })
  7. .then((response) => {
  8. console.log(response)
  9. })
  10. .catch((error) => {
  11. console.error('error', error)
  12. })
  13. }}



留言

這個網誌中的熱門文章

[面試] 日月光 設備工程師

[日文] Google日文輸入法 簡單安裝說明

[Windows] 還我 win7 相片檢視器!!