{"id":93950,"date":"2025-12-30T21:45:43","date_gmt":"2025-12-30T14:45:43","guid":{"rendered":"https:\/\/itviec.com\/blog\/?p=93950"},"modified":"2025-12-30T21:45:46","modified_gmt":"2025-12-30T14:45:46","slug":"axios-npm-la-gi","status":"publish","type":"post","link":"https:\/\/itviec.com\/blog\/axios-npm-la-gi\/","title":{"rendered":"Axios npm l\u00e0 g\u00ec: C\u00e1ch c\u00e0i \u0111\u1eb7t v\u00e0 s\u1eed d\u1ee5ng chi ti\u1ebft cho ng\u01b0\u1eddi m\u1edbi"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">N\u1ed9i dung b\u00e0i vi\u1ebft<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/itviec.com\/blog\/axios-npm-la-gi\/#Axios_la_gi_Doi_net_ve_axios_npm\" >Axios l\u00e0 g\u00ec? \u0110\u00f4i n\u00e9t v\u1ec1 axios npm<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/itviec.com\/blog\/axios-npm-la-gi\/#Tai_sao_nen_lua_chon_axios_thay_vi_fetch\" >T\u1ea1i sao n\u00ean l\u1ef1a ch\u1ecdn axios thay v\u00ec fetch?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/itviec.com\/blog\/axios-npm-la-gi\/#Lam_the_nao_de_cai_dat_axios_npm\" >L\u00e0m th\u1ebf n\u00e0o \u0111\u1ec3 c\u00e0i \u0111\u1eb7t axios npm?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/itviec.com\/blog\/axios-npm-la-gi\/#Cach_su_dung_cac_phuong_thuc_HTTP_trong_axios_nhu_the_nao\" >C\u00e1ch s\u1eed d\u1ee5ng c\u00e1c ph\u01b0\u01a1ng th\u1ee9c HTTP trong axios nh\u01b0 th\u1ebf n\u00e0o?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/itviec.com\/blog\/axios-npm-la-gi\/#Loi_thuong_gap_khi_su_dung_axios_npm\" >L\u1ed7i th\u01b0\u1eddng g\u1eb7p khi s\u1eed d\u1ee5ng axios npm<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/itviec.com\/blog\/axios-npm-la-gi\/#Cac_cau_hoi_thuong_gap_ve_axios_npm\" >C\u00e1c c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 axios npm<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/itviec.com\/blog\/axios-npm-la-gi\/#Tong_ket_ve_axios_npm\" >T\u1ed5ng k\u1ebft v\u1ec1 axios npm<\/a><\/li><\/ul><\/nav><\/div>\n\n<p><strong><em>Axios npm l\u00e0 th\u01b0 vi\u1ec7n HTTP m\u1ea1nh m\u1ebd v\u00e0 linh ho\u1ea1t, \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng r\u1ed9ng r\u00e3i \u0111\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c request trong JavaScript nh\u1edd c\u00fa ph\u00e1p \u0111\u01a1n gi\u1ea3n, h\u1ed7 tr\u1ee3 Promise v\u00e0 kh\u1ea3 n\u0103ng ho\u1ea1t \u0111\u1ed9ng tr\u00ean c\u1ea3 tr\u00ecnh duy\u1ec7t l\u1eabn Node.js. \u0110\u00e2y l\u00e0 c\u00f4ng c\u1ee5 gi\u00fap developer giao ti\u1ebfp API d\u1ec5 d\u00e0ng h\u01a1n nh\u1edd c\u00fa ph\u00e1p \u0111\u01a1n gi\u1ea3n, kh\u1ea3 n\u0103ng x\u1eed l\u00fd l\u1ed7i m\u1ea1nh m\u1ebd v\u00e0 h\u1ec7 th\u1ed1ng interceptors linh ho\u1ea1t.<\/em><\/strong><\/p>\n\n\n\n<p>\u0110\u1ecdc b\u00e0i vi\u1ebft sau \u0111\u1ec3 \u0111\u01b0\u1ee3c gi\u1ea3i \u0111\u00e1p chi ti\u1ebft h\u01a1n v\u1ec1:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>C\u00e1c \u0111i\u1ec3m n\u1ed5i b\u1eadt c\u1ee7a axios npm.\u00a0<\/li>\n\n\n\n<li>T\u1ea1i sao n\u00ean l\u1ef1a ch\u1ecdn axios npm trong l\u1eadp tr\u00ecnh web.<\/li>\n\n\n\n<li>H\u01b0\u1edbng d\u1eabn c\u00e1ch c\u00e0i \u0111\u1eb7t v\u00e0 s\u1eed d\u1ee5ng axios npm chi ti\u1ebft.\u00a0<\/li>\n\n\n\n<li>Ph\u01b0\u01a1ng ph\u00e1p s\u1eed d\u1ee5ng HTTP trong axios nh\u01b0 th\u1ebf n\u00e0o.<\/li>\n\n\n\n<li>M\u1ed9t s\u1ed1 l\u1ed7i th\u01b0\u1eddng g\u1eb7p khi s\u1eed d\u1ee5ng axios npm khi l\u1eadp tr\u00ecnh.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-axios-la-gi-doi-net-v\u1ec1-axios-npm\"><span class=\"ez-toc-section\" id=\"Axios_la_gi_Doi_net_ve_axios_npm\"><\/span><strong>Axios l\u00e0 g\u00ec? \u0110\u00f4i n\u00e9t v\u1ec1 axios npm<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Axios l\u00e0 m\u1ed9t th\u01b0 vi\u1ec7n <a href=\"https:\/\/itviec.com\/blog\/javascript-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">JavaScript<\/a> nh\u1eb9 (lightweight JavaScript library), \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf gi\u00fap vi\u1ec7c th\u1ef1c hi\u1ec7n c\u00e1c HTTP request tr\u1edf n\u00ean \u0111\u01a1n gi\u1ea3n v\u00e0 hi\u1ec7u qu\u1ea3 h\u01a1n. Th\u01b0 vi\u1ec7n n\u00e0y ho\u1ea1t \u0111\u1ed9ng d\u1ef1a tr\u00ean Promise, cho ph\u00e9p l\u1eadp tr\u00ecnh vi\u00ean qu\u1ea3n l\u00fd lu\u1ed3ng d\u1eef li\u1ec7u b\u1ea5t \u0111\u1ed3ng b\u1ed9 m\u1ed9t c\u00e1ch s\u1ea1ch s\u1ebd, g\u1ecdn g\u00e0ng v\u00e0 d\u1ec5 theo d\u00f5i.<\/p>\n\n\n\n<p>D\u00f9 b\u1ea1n \u0111ang l\u00e0m vi\u1ec7c tr\u00ean tr\u00ecnh duy\u1ec7t hay m\u00f4i tr\u01b0\u1eddng Node.js, Axios v\u1eabn cung c\u1ea5p m\u1ed9t gi\u1ea3i ph\u00e1p th\u1ed1ng nh\u1ea5t \u0111\u1ec3 t\u01b0\u01a1ng t\u00e1c v\u1edbi c\u00e1c <a href=\"https:\/\/itviec.com\/blog\/api-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">API<\/a>.<\/p>\n\n\n\n<p>M\u1ed9t s\u1ed1 t\u00ednh n\u0103ng n\u1ed5i b\u1eadt c\u1ee7a axios c\u00f3 th\u1ec3 k\u1ec3 \u0111\u1ebfn nh\u01b0:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ho\u1ea1t \u0111\u1ed9ng d\u1ef1a tr\u00ean promise:<\/strong> Axios t\u00edch h\u1ee3p ho\u00e0n h\u1ea3o v\u1edbi Promise v\u00e0 ho\u00e0n to\u00e0n t\u01b0\u01a1ng th\u00edch v\u1edbi c\u00fa ph\u00e1p async\/await, gi\u00fap code b\u1ea5t \u0111\u1ed3ng b\u1ed9 tr\u1edf n\u00ean s\u00fac t\u00edch v\u00e0 d\u1ec5 qu\u1ea3n l\u00fd h\u01a1n.<\/li>\n\n\n\n<li><strong>T\u1ef1 \u0111\u1ed9ng chuy\u1ec3n \u0111\u1ed5i JSON:<\/strong> Axios t\u1ef1 \u0111\u1ed9ng bi\u1ebfn d\u1eef li\u1ec7u JSON t\u1eeb server th\u00e0nh JavaScript object, gi\u00fap b\u1ea1n kh\u00f4ng c\u1ea7n g\u1ecdi th\u00eam response.json() nh\u01b0 khi d\u00f9ng fetch.<\/li>\n\n\n\n<li><strong>Request v\u00e0 Response Interceptors: <\/strong>Axios cho ph\u00e9p can thi\u1ec7p v\u00e0o request ho\u1eb7c response tr\u01b0\u1edbc khi ch\u00fang \u0111\u01b0\u1ee3c x\u1eed l\u00fd. \u0110i\u1ec1u n\u00e0y s\u1ebd c\u1ef1c k\u1ef3 h\u1eefu \u00edch cho vi\u1ec7c th\u00eam token x\u00e1c th\u1ef1c, ch\u1ec9nh s\u1eeda headers v\u00e0 x\u1eed l\u00fd logic chung cho t\u1ea5t c\u1ea3 request.\u00a0<\/li>\n\n\n\n<li><strong>Default Configurations: <\/strong>B\u1ea1n c\u00f3 th\u1ec3 t\u1ea1o c\u00e1c Axios instance v\u1edbi c\u1ea5u h\u00ecnh m\u1eb7c \u0111\u1ecbnh nh\u01b0 baseURL, headers chung hay timeout \u0111\u1ec3 gi\u1ea3m s\u1ef1 l\u1eb7p l\u1ea1i v\u00e0 gi\u00fap code s\u1ea1ch h\u01a1n r\u1ea5t nhi\u1ec1u.<\/li>\n\n\n\n<li><strong>X\u1eed l\u00fd l\u1ed7i m\u1ea1nh m\u1ebd:<\/strong> Axios cung c\u1ea5p h\u1ec7 th\u1ed1ng error r\u00f5 r\u00e0ng v\u1edbi th\u00f4ng tin chi ti\u1ebft bao g\u1ed3m error message, request, response, status code gi\u00fap vi\u1ec7c debug tr\u1edf n\u00ean nhanh ch\u00f3ng v\u00e0 ch\u00ednh x\u00e1c h\u01a1n.<\/li>\n\n\n\n<li><strong>H\u1ed7 tr\u1ee3 XSRF\/CSRF:<\/strong> Axios cung c\u1ea5p c\u01a1 ch\u1ebf h\u1ed7 tr\u1ee3 s\u1eb5n \u0111\u1ec3 ch\u1ed1ng t\u1ea5n c\u00f4ng Cross-Site Request Forgery (XSRF), t\u1ef1 \u0111\u1ed9ng \u0111\u1ecdc token t\u1eeb cookie v\u00e0 g\u1eafn v\u00e0o header cho c\u00e1c request c\u00f9ng origin. V\u1edbi Fetch, b\u1ea1n c\u1ea7n t\u1ef1 tri\u1ec3n khai th\u1ee7 c\u00f4ng c\u01a1 ch\u1ebf n\u00e0y.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-t\u1ea1i-sao-nen-l\u1ef1a-ch\u1ecdn-axios-thay-vi-fetch\"><span class=\"ez-toc-section\" id=\"Tai_sao_nen_lua_chon_axios_thay_vi_fetch\"><\/span><strong>T\u1ea1i sao n\u00ean l\u1ef1a ch\u1ecdn axios thay v\u00ec fetch?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>M\u1eb7c d\u00f9 fetch API \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 s\u1eb5n trong JavaScript, Axios v\u1eabn \u0111\u01b0\u1ee3c nhi\u1ec1u l\u1eadp tr\u00ecnh vi\u00ean \u01b0u ti\u00ean l\u1ef1a ch\u1ecdn nh\u1edd nh\u1eefng \u01b0u \u0111i\u1ec3m n\u1ed5i b\u1eadt nh\u01b0:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-x\u1eed-ly-json-t\u1ef1-d\u1ed9ng\"><strong>X\u1eed l\u00fd JSON t\u1ef1 \u0111\u1ed9ng<\/strong><\/h3>\n\n\n\n<p>V\u1edbi fetch, b\u1ea1n ph\u1ea3i t\u1ef1 chuy\u1ec3n \u0111\u1ed5i d\u1eef li\u1ec7u b\u1eb1ng response.json(). Axios t\u1ef1 \u0111\u1ed9ng l\u00e0m vi\u1ec7c n\u00e0y, gi\u00fap code ng\u1eafn g\u1ecdn v\u00e0 s\u1ea1ch h\u01a1n.<\/p>\n\n\n\n<p>V\u00ed d\u1ee5:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ S\u1eed d\u1ee5ng fetch\nfetch(url)\n\u00a0\u00a0.then(res => res.json())\n\u00a0\u00a0.then(data => console.log(data));\n\n\/\/ S\u1eed d\u1ee5ng Axios\naxios.get(url)\n\u00a0\u00a0.then(response => console.log(response.data));<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-h\u1ed7-tr\u1ee3-request-interceptors\"><strong>H\u1ed7 tr\u1ee3 Request Interceptors<\/strong><\/h3>\n\n\n\n<p>Axios cho ph\u00e9p b\u1ea1n can thi\u1ec7p v\u00e0o request tr\u01b0\u1edbc khi g\u1eedi \u0111i, ch\u1eb3ng h\u1ea1n nh\u01b0 th\u00eam token x\u00e1c th\u1ef1c, t\u00f9y ch\u1ec9nh headers,\u2026 Trong khi \u0111\u00f3, Fetch kh\u00f4ng h\u1ed7 tr\u1ee3 interceptors \u1edf m\u1ee9c native.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-x\u1eed-ly-l\u1ed7i-t\u1ed1t-h\u01a1n\"><strong>X\u1eed l\u00fd l\u1ed7i t\u1ed1t h\u01a1n<\/strong><\/h3>\n\n\n\n<p>Axios tr\u1ea3 v\u1ec1 object l\u1ed7i chi ti\u1ebft h\u01a1n, bao g\u1ed3m request, response, status,\u2026 Trong khi \u0111\u00f3, fetch kh\u00f4ng b\u00e1o l\u1ed7i v\u1edbi c\u00e1c m\u00e3 HTTP nh\u01b0 404 ho\u1eb7c 500, tr\u1eeb khi b\u1ea1n t\u1ef1 ki\u1ec3m tra th\u1ee7 c\u00f4ng. Fetch ch\u1ec9 l\u1ed7i khi c\u00f3 l\u1ed7i m\u1ea1ng.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-h\u1ed7-tr\u1ee3-t\u1ed1t-h\u01a1n-tren-trinh-duy\u1ec7t-cu\"><strong>H\u1ed7 tr\u1ee3 t\u1ed1t h\u01a1n tr\u00ean tr\u00ecnh duy\u1ec7t c\u0169<\/strong><\/h3>\n\n\n\n<p>Axios c\u00f3 kh\u1ea3 n\u0103ng h\u1ed7 tr\u1ee3 nhi\u1ec1u tr\u00ecnh duy\u1ec7t \u0111\u1eddi c\u0169. Fetch th\u01b0\u1eddng c\u1ea7n polyfill \u0111\u1ec3 ho\u1ea1t \u0111\u1ed9ng \u1ed5n \u0111\u1ecbnh trong m\u00f4i tr\u01b0\u1eddng kh\u00f4ng h\u1ed7 tr\u1ee3 chu\u1ea9n hi\u1ec7n \u0111\u1ea1i.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-lam-th\u1ebf-nao-d\u1ec3-cai-d\u1eb7t-axios-npm\"><span class=\"ez-toc-section\" id=\"Lam_the_nao_de_cai_dat_axios_npm\"><\/span><strong>L\u00e0m th\u1ebf n\u00e0o \u0111\u1ec3 c\u00e0i \u0111\u1eb7t axios npm?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Vi\u1ec7c b\u1eaft \u0111\u1ea7u s\u1eed d\u1ee5ng Axios npm r\u1ea5t nhanh v\u00e0 \u0111\u01a1n gi\u1ea3n. D\u01b0\u1edbi \u0111\u00e2y, ITviec s\u1ebd h\u01b0\u1edbng d\u1eabn t\u1eebng b\u01b0\u1edbc \u0111\u1ec3 c\u00e0i \u0111\u1eb7t v\u00e0 \u0111\u01b0a Axios v\u00e0o d\u1ef1 \u00e1n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-b\u01b0\u1edbc-1-cai-d\u1eb7t-axios\"><strong>B\u01b0\u1edbc 1: C\u00e0i \u0111\u1eb7t Axios<\/strong><\/h3>\n\n\n\n<p>\u0110\u1ec3 d\u00f9ng Axios, tr\u01b0\u1edbc ti\u00ean b\u1ea1n c\u1ea7n c\u00e0i \u0111\u1eb7t n\u00f3 v\u00e0o d\u1ef1 \u00e1n. B\u1ea1n c\u00f3 th\u1ec3 d\u00f9ng npm ho\u1eb7c yarn. N\u1ebfu b\u1ea1n s\u1eed d\u1ee5ng npm (Node Package Manager), c\u00f3 th\u1ec3 b\u1eaft \u0111\u1ea7u m\u1edf terminal t\u1ea1i th\u01b0 m\u1ee5c d\u1ef1 \u00e1n v\u00e0 ch\u1ea1y l\u1ec7nh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm install axios<\/code><\/pre>\n\n\n\n<p>Ho\u1eb7c n\u1ebfu b\u1ea1n s\u1eed d\u1ee5ng yarn l\u00e0m tr\u00ecnh qu\u1ea3n l\u00fd package th\u00ec h\u00e3y ch\u1ea1y l\u1ec7nh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>yarn add axios<\/code><\/pre>\n\n\n\n<p>Ho\u1eb7c b\u1ea1n c\u0169ng c\u00f3 th\u1ec3 d\u00f9ng pnpm. pnpm l\u00e0 m\u1ed9t tr\u00ecnh qu\u1ea3n l\u00fd package cho JavaScript\/Node.js \u0111ang ph\u1ed5 bi\u1ebfn hi\u1ec7n nay. N\u00f3 t\u01b0\u01a1ng t\u1ef1 nh\u01b0 npm v\u00e0 yarn, nh\u01b0ng \u0111\u01b0\u1ee3c t\u1ed1i \u01b0u v\u1ec1 t\u1ed1c \u0111\u1ed9 v\u00e0 dung l\u01b0\u1ee3ng l\u01b0u tr\u1eef b\u1eb1ng c\u00e1ch d\u00f9ng chung c\u00e1c package \u0111\u00e3 c\u00e0i \u0111\u1eb7t, gi\u00fap ti\u1ebft ki\u1ec7m kh\u00f4ng gian \u1ed5 c\u1ee9ng v\u00e0 c\u00e0i \u0111\u1eb7t nhanh h\u01a1n.\u00a0<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pnpm add axios<\/code><\/pre>\n\n\n\n<p>Sau khi c\u00e0i \u0111\u1eb7t, axios s\u1ebd \u0111\u01b0\u1ee3c th\u00eam v\u00e0o m\u1ee5c dependencies trong file package.json.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-b\u01b0\u1edbc-2-import-axios-vao-d\u1ef1-an\"><strong>B\u01b0\u1edbc 2: Import Axios v\u00e0o d\u1ef1 \u00e1n<\/strong><\/h3>\n\n\n\n<p>Sau khi c\u00e0i \u0111\u1eb7t xong, b\u1ea1n c\u1ea7n import Axios v\u00e0o file JavaScript ho\u1eb7c <a href=\"https:\/\/itviec.com\/blog\/typescript-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">TypeScript<\/a> c\u1ee7a m\u00ecnh. N\u1ebfu b\u1ea1n s\u1eed d\u1ee5ng CommonJS (Environment Node.js) th\u00ec h\u00e3y th\u00eam d\u00f2ng sau v\u00e0o file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const axios = require('axios');<\/code><\/pre>\n\n\n\n<p>Ho\u1eb7c n\u1ebfu s\u1eed d\u1ee5ng ES6 (cho React, Nextjs, Vue hay Vite) th\u00ec b\u1ea1n c\u1ea7n import Axios trong file m\u00e3 ngu\u1ed3n c\u1ee7a m\u00ecnh nh\u01b0 sau:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import axios from 'axios';<\/code><\/pre>\n\n\n\n<p>C\u1ea3 hai c\u00e1ch \u0111\u1ec1u h\u1ee3p l\u1ec7, t\u00f9y thu\u1ed9c v\u00e0o m\u00f4i tr\u01b0\u1eddng v\u00e0 c\u1ea5u h\u00ecnh module c\u1ee7a d\u1ef1 \u00e1n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-b\u01b0\u1edbc-3-ki\u1ec3m-tra-axios-da-ho\u1ea1t-d\u1ed9ng-ch\u01b0a\"><strong>B\u01b0\u1edbc 3: Ki\u1ec3m tra Axios \u0111\u00e3 ho\u1ea1t \u0111\u1ed9ng ch\u01b0a<\/strong><\/h3>\n\n\n\n<p>D\u01b0\u1edbi \u0111\u00e2y l\u00e0 \u0111o\u1ea1n m\u00e3 \u0111\u01a1n gi\u1ea3n \u0111\u1ec3 b\u1ea1n ki\u1ec3m tra Axios \u0111\u00e3 \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t v\u00e0 import \u0111\u00fang c\u00e1ch:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import axios from 'axios';\n\naxios.get('https:\/\/jsonplaceholder.typicode.com\/posts')\n  .then(response => {\n    console.log('Axios is working:', response.data);\n  })\n  .catch(error => {\n    console.error('Error using Axios:', error);\n  });<\/code><\/pre>\n\n\n\n<p>Ch\u1ea1y \u0111o\u1ea1n code n\u00e0y trong d\u1ef1 \u00e1n c\u1ee7a b\u1ea1n. N\u1ebfu d\u1eef li\u1ec7u tr\u1ea3 v\u1ec1 xu\u1ea5t hi\u1ec7n trong console, ngh\u0129a l\u00e0 b\u1ea1n \u0111\u00e3 c\u00e0i \u0111\u1eb7t v\u00e0 s\u1eed d\u1ee5ng Axios npm th\u00e0nh c\u00f4ng.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cach-s\u1eed-d\u1ee5ng-cac-ph\u01b0\u01a1ng-th\u1ee9c-http-trong-axios-nh\u01b0-th\u1ebf-nao\"><span class=\"ez-toc-section\" id=\"Cach_su_dung_cac_phuong_thuc_HTTP_trong_axios_nhu_the_nao\"><\/span><strong>C\u00e1ch s\u1eed d\u1ee5ng c\u00e1c ph\u01b0\u01a1ng th\u1ee9c HTTP trong axios nh\u01b0 th\u1ebf n\u00e0o?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Axios gi\u00fap vi\u1ec7c x\u1eed l\u00fd c\u00e1c ph\u01b0\u01a1ng th\u1ee9c HTTP nh\u01b0 GET, POST, PUT v\u00e0 DELETE tr\u1edf n\u00ean d\u1ec5 d\u00e0ng nh\u1edd c\u00fa ph\u00e1p tr\u1ef1c quan. D\u01b0\u1edbi \u0111\u00e2y, ITviec s\u1ebd gi\u1ea3i \u0111\u00e1p chi ti\u1ebft t\u1eebng ph\u01b0\u01a1ng th\u1ee9c. Trong c\u00e1c v\u00ed d\u1ee5 b\u00ean d\u01b0\u1edbi, ch\u00fang t\u00f4i \u01b0u ti\u00ean s\u1eed d\u1ee5ng async \/ await v\u00ec c\u00fa ph\u00e1p g\u1ecdn g\u00e0ng, d\u1ec5 \u0111\u1ecdc v\u00e0 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng ph\u1ed5 bi\u1ebfn trong c\u00e1c d\u1ef1 \u00e1n JavaScript hi\u1ec7n \u0111\u1ea1i.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-get-request\"><strong>GET Request<\/strong><\/h3>\n\n\n\n<p>GET request \u0111\u01b0\u1ee3c d\u00f9ng \u0111\u1ec3 l\u1ea5y d\u1eef li\u1ec7u t\u1eeb server. \u0110\u00e2y l\u00e0 m\u1ed9t trong nh\u1eefng ph\u01b0\u01a1ng th\u1ee9c HTTP ph\u1ed5 bi\u1ebfn nh\u1ea5t, th\u01b0\u1eddng \u0111\u01b0\u1ee3c d\u00f9ng \u0111\u1ec3 l\u1ea5y danh s\u00e1ch, h\u1ed3 s\u01a1 ng\u01b0\u1eddi d\u00f9ng ho\u1eb7c b\u1ea5t k\u1ef3 d\u1eef li\u1ec7u ch\u1ec9 \u0111\u1ecdc n\u00e0o.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>async function fetchUsers() {\n  try {\n    const response = await axios.get('https:\/\/jsonplaceholder.typicode.com\/users');\n    console.log(response.data);\n  } catch (error) {\n    console.error(error);\n  }\n}\n\nfetchUsers();<\/code><\/pre>\n\n\n\n<p>Trong \u0111\u00f3:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>axios.get(url) g\u1eedi m\u1ed9t GET request \u0111\u1ebfn URL \u0111\u01b0\u1ee3c cung c\u1ea5p.<\/li>\n\n\n\n<li>response.data ch\u1ee9a d\u1eef li\u1ec7u m\u00e0 server tr\u1ea3 v\u1ec1.<\/li>\n\n\n\n<li>await d\u00f9ng \u0111\u1ec3 ch\u1edd k\u1ebft qu\u1ea3 t\u1eeb axios.get(&#8230;).<\/li>\n<\/ul>\n\n\n\n<p>K\u1ebft qu\u1ea3 c\u1ee7a v\u00ed d\u1ee5 tr\u00ean nh\u01b0 sau:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;\n  { \"id\": 1, \"name\": \"Leanne Graham\", \"email\": \"leanne@example.com\" },\n  { \"id\": 2, \"name\": \"Ervin Howell\", \"email\": \"ervin@example.com\" }\n]<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-post-request\"><strong>POST Request<\/strong><\/h3>\n\n\n\n<p>POST request \u0111\u01b0\u1ee3c d\u00f9ng \u0111\u1ec3 g\u1eedi d\u1eef li\u1ec7u l\u00ean server, th\u01b0\u1eddng ph\u1ee5c v\u1ee5 cho vi\u1ec7c t\u1ea1o m\u1edbi d\u1eef li\u1ec7u nh\u01b0 \u0111\u0103ng k\u00fd ng\u01b0\u1eddi d\u00f9ng ho\u1eb7c \u0111\u0103ng b\u00e0i vi\u1ebft.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>async function createPost() {\n  try {\nconst response = await axios.post('https:\/\/jsonplaceholder.typicode.com\/posts', {\n      title: 'B\u00e0i vi\u1ebft m\u1edbi',\n      body: '\u0110\u0103ng t\u1ea3i m\u1ed9t b\u00e0i vi\u1ebft m\u1edbi',\n      userId: 1\n    });\n    console.log(response.data);\n  } catch (error) {\n    console.error(error);\n  }\n}\n\ncreatePost();<\/code><\/pre>\n\n\n\n<p>Trong \u0111\u00f3<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>axios.post(url, data) g\u1eedi m\u1ed9t POST request l\u00ean server v\u1edbi d\u1eef li\u1ec7u n\u1eb1m \u1edf tham s\u1ed1 th\u1ee9 hai.<\/li>\n\n\n\n<li>Trong v\u00ed d\u1ee5 n\u00e0y, request g\u1eedi th\u00f4ng tin v\u1ec1 m\u1ed9t b\u00e0i vi\u1ebft m\u1edbi g\u1ed3m title, body v\u00e0 userId.<\/li>\n\n\n\n<li>Server tr\u1ea3 v\u1ec1 d\u1eef li\u1ec7u c\u1ee7a b\u1ea3n ghi m\u1edbi \u0111\u01b0\u1ee3c t\u1ea1o.<\/li>\n<\/ul>\n\n\n\n<p>K\u1ebft qu\u1ea3 c\u1ee7a v\u00ed d\u1ee5 tr\u00ean nh\u01b0 sau:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"id\": 101,\n  \"title\": \"B\u00e0i vi\u1ebft m\u1edbi\",\n  \"body\": \"\u0110\u0103ng t\u1ea3i m\u1ed9t b\u00e0i vi\u1ebft m\u1edbi\",\n  \"userId\": 1\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-patch-request\"><strong>PATCH Request<\/strong><\/h3>\n\n\n\n<p>PATCH \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 c\u1eadp nh\u1eadt m\u1ed9t ph\u1ea7n d\u1eef li\u1ec7u c\u1ee7a t\u00e0i nguy\u00ean \u0111\u00e3 t\u1ed3n t\u1ea1i, thay v\u00ec t\u1ea1o m\u1edbi ho\u00e0n to\u00e0n.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>async function updatePost() {\n  try {\n    const response = await axios.patch(\n      'https:\/\/jsonplaceholder.typicode.com\/posts\/1',\n      {\n        title: 'Ti\u00eau \u0111\u1ec1 \u0111\u00e3 \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt'\n      }\n    );\n    console.log(response.data);\n  } catch (error) {\n    console.error(error);\n  }\n}\n\nupdatePost();<\/code><\/pre>\n\n\n\n<p>Trong tr\u01b0\u1eddng h\u1ee3p n\u00e0y:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PATCH ch\u1ec9 g\u1eedi l\u00ean nh\u1eefng tr\u01b0\u1eddng d\u1eef li\u1ec7u c\u1ea7n thay \u0111\u1ed5i (title).<\/li>\n\n\n\n<li>C\u00e1c tr\u01b0\u1eddng c\u00f2n l\u1ea1i th\u01b0\u1eddng \u0111\u01b0\u1ee3c gi\u1eef nguy\u00ean t\u00f9y v\u00e0o c\u00e1ch API \u0111\u01b0\u1ee3c tri\u1ec3n khai.<\/li>\n<\/ul>\n\n\n\n<p>Trong c\u00e1c RESTful API, POST v\u00e0 PATCH \u0111\u1ec1u l\u00e0 nh\u1eefng HTTP method d\u00f9ng \u0111\u1ec3 g\u1eedi d\u1eef li\u1ec7u t\u1eeb client l\u00ean server, tuy nhi\u00ean m\u1ed7i method \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf cho nh\u1eefng m\u1ee5c \u0111\u00edch kh\u00e1c nhau. POST th\u01b0\u1eddng d\u1eabn \u0111\u1ebfn vi\u1ec7c t\u1ea1o ra m\u1ed9t b\u1ea3n ghi m\u1edbi, trong khi PATCH ch\u1ec9 ch\u1ec9nh s\u1eeda b\u1ea3n ghi hi\u1ec7n c\u00f3.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>POST:<\/strong> d\u00f9ng \u0111\u1ec3 t\u1ea1o m\u1edbi t\u00e0i nguy\u00ean, th\u01b0\u1eddng g\u1eedi \u0111\u1ea7y \u0111\u1ee7 d\u1eef li\u1ec7u c\u1ea7n thi\u1ebft.<\/li>\n\n\n\n<li><strong>PATCH:<\/strong> d\u00f9ng \u0111\u1ec3 c\u1eadp nh\u1eadt m\u1ed9t ph\u1ea7n t\u00e0i nguy\u00ean \u0111\u00e3 t\u1ed3n t\u1ea1i, ch\u1ec9 g\u1eedi nh\u1eefng tr\u01b0\u1eddng c\u1ea7n thay \u0111\u1ed5i.<\/li>\n<\/ul>\n\n\n\n<p>B\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng POST khi c\u1ea7n t\u1ea1o d\u1eef li\u1ec7u m\u1edbi nh\u01b0 t\u1ea1o ng\u01b0\u1eddi d\u00f9ng ho\u1eb7c b\u00e0i vi\u1ebft. S\u1eed d\u1ee5ng PATCH khi c\u1ea7n ch\u1ec9nh s\u1eeda ho\u1eb7c c\u1eadp nh\u1eadt m\u1ed9t v\u00e0i thu\u1ed9c t\u00ednh c\u1ee7a d\u1eef li\u1ec7u \u0111\u00e3 c\u00f3 nh\u01b0 c\u1eadp nh\u1eadt ti\u00eau \u0111\u1ec1 b\u00e0i vi\u1ebft ho\u1eb7c tr\u1ea1ng th\u00e1i \u0111\u01a1n h\u00e0ng.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-put-request\"><strong>PUT Request<\/strong><\/h3>\n\n\n\n<p>PUT request \u0111\u01b0\u1ee3c d\u00f9ng \u0111\u1ec3 c\u1eadp nh\u1eadt m\u1ed9t t\u00e0i nguy\u00ean \u0111\u00e3 t\u1ed3n t\u1ea1i. Ph\u01b0\u01a1ng th\u1ee9c n\u00e0y th\u01b0\u1eddng thay th\u1ebf to\u00e0n b\u1ed9 t\u00e0i nguy\u00ean b\u1eb1ng d\u1eef li\u1ec7u m\u1edbi.&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>async function updatePost() {\n  try {\n    const response = await axios.put(\n      'https:\/\/jsonplaceholder.typicode.com\/posts\/1',\n      {\n        id: 1,\n        title: 'C\u1eadp nh\u1eadt b\u00e0i vi\u1ebft',\n        body: 'B\u00e0i vi\u1ebft n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt.',\n        userId: 1\n      }\n    );\n    console.log(response.data);\n  } catch (error) {\n    console.error(error);\n  }\n}\n\nupdatePost();<\/code><\/pre>\n\n\n\n<p>Trong \u0111\u00f3<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>axios.put(url, data) g\u1eedi m\u1ed9t PUT request \u0111\u1ec3 c\u1eadp nh\u1eadt t\u00e0i nguy\u00ean t\u1ea1i URL ch\u1ec9 \u0111\u1ecbnh.<\/li>\n\n\n\n<li>Tham s\u1ed1 th\u1ee9 hai ch\u1ee9a d\u1eef li\u1ec7u c\u1eadp nh\u1eadt. Trong v\u00ed d\u1ee5 n\u00e0y, c\u1eadp nh\u1eadt title v\u00e0 body c\u1ee7a b\u00e0i vi\u1ebft c\u00f3 id: 1.<\/li>\n\n\n\n<li>Server s\u1ebd tr\u1ea3 v\u1ec1 t\u00e0i nguy\u00ean \u0111\u00e3 \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt sau khi x\u1eed l\u00fd.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"id\": 1,\n  \"title\": \"C\u1eadp nh\u1eadt b\u00e0i vi\u1ebft\",\n  \"body\": \"B\u00e0i vi\u1ebft n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt\",\n  \"userId\": 1\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-delete-request\"><strong>DELETE Request<\/strong><\/h3>\n\n\n\n<p>DELETE request \u0111\u01b0\u1ee3c d\u00f9ng \u0111\u1ec3 x\u00f3a m\u1ed9t t\u00e0i nguy\u00ean kh\u1ecfi server. \u0110\u00e2y l\u00e0 ph\u01b0\u01a1ng th\u1ee9c ph\u1ed5 bi\u1ebfn khi x\u00f3a d\u1eef li\u1ec7u nh\u01b0 b\u00e0i vi\u1ebft ho\u1eb7c h\u1ed3 s\u01a1 ng\u01b0\u1eddi d\u00f9ng.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>async function deletePost() {\n  try {\n    const response = await axios.delete(\n      'https:\/\/jsonplaceholder.typicode.com\/posts\/1'\n    );\n    console.log('Deleted:', response.data);\n  } catch (error) {\n    console.error(error);\n  }\n}\n\ndeletePost();<\/code><\/pre>\n\n\n\n<p>Trong \u0111\u00f3<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>axios.delete(url) g\u1eedi m\u1ed9t request DELETE \u0111\u1ebfn server.<\/li>\n\n\n\n<li>Server s\u1ebd x\u00f3a t\u00e0i nguy\u00ean \u0111\u01b0\u1ee3c ch\u1ec9 \u0111\u1ecbnh t\u1ea1i URL (trong v\u00ed d\u1ee5 n\u00e0y l\u00e0 \/posts\/1) v\u00e0 c\u00f3 th\u1ec3 tr\u1ea3 v\u1ec1 m\u1ed9t ph\u1ea3n h\u1ed3i x\u00e1c nh\u1eadn.<\/li>\n<\/ul>\n\n\n\n<p>Server c\u00f3 th\u1ec3 tr\u1ea3 v\u1ec1 d\u1eef li\u1ec7u tr\u1ed1ng ho\u1eb7c th\u00f4ng tin x\u00e1c nh\u1eadn x\u00f3a th\u00e0nh c\u00f4ng.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-l\u1ed7i-th\u01b0\u1eddng-g\u1eb7p-khi-s\u1eed-d\u1ee5ng-axios-npm\"><span class=\"ez-toc-section\" id=\"Loi_thuong_gap_khi_su_dung_axios_npm\"><\/span><strong>L\u1ed7i th\u01b0\u1eddng g\u1eb7p khi s\u1eed d\u1ee5ng axios npm<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Gi\u1ed1ng nh\u01b0 b\u1ea5t k\u1ef3 c\u00f4ng c\u1ee5 n\u00e0o, vi\u1ec7c s\u1eed d\u1ee5ng Axios npm \u0111\u00f4i khi c\u00f3 th\u1ec3 g\u1eb7p m\u1ed9t s\u1ed1 th\u00e1ch th\u1ee9c. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 nh\u1eefng v\u1ea5n \u0111\u1ec1 th\u01b0\u1eddng g\u1eb7p v\u00e0 c\u00e1ch kh\u1eafc ph\u1ee5c.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-l\u1ed7i-cors\"><strong>L\u1ed7i CORS<\/strong><\/h3>\n\n\n\n<p>CORS l\u00e0 c\u01a1 ch\u1ebf b\u1ea3o m\u1eadt c\u1ee7a tr\u00ecnh duy\u1ec7t, l\u1ed7i Cross-Origin Resource Sharing (CORS) x\u1ea3y ra khi server API kh\u00f4ng cho ph\u00e9p request t\u1eeb domain c\u1ee7a b\u1ea1n.<\/p>\n\n\n\n<p>\u0110\u1ec3 kh\u1eafc ph\u1ee5c, b\u1ea1n n\u00ean \u0111\u1ea3m b\u1ea3o server h\u1ed7 tr\u1ee3 CORS b\u1eb1ng c\u00e1ch b\u1eadt c\u00e1c header c\u1ea7n thi\u1ebft nh\u01b0 Access-Control-Allow-Origin. Ho\u1eb7c trong qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n (m\u00f4i tr\u01b0\u1eddng Development), b\u1ea1n c\u00f3 th\u1ec3 d\u00f9ng proxy c\u1ee7a framework (Vite, CRA, Next.js&#8230;) ho\u1eb7c extension browser nh\u01b0 \u201cCORS Unblock\u201d \u0111\u1ec3 t\u1ea1m th\u1eddi b\u1ecf qua l\u1ed7i CORS (l\u01b0u \u00fd t\u1eaft extension sau khi l\u00e0m vi\u1ec7c \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o an to\u00e0n).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-l\u1ed7i-timeout-khi-g\u1eedi-request\"><strong>L\u1ed7i timeout khi g\u1eedi request<\/strong><\/h3>\n\n\n\n<p>\u0110\u00e2y l\u00e0 v\u1ea5n \u0111\u1ec1 khi server API ph\u1ea3n h\u1ed3i qu\u00e1 l\u00e2u, d\u1eabn \u0111\u1ebfn request b\u1ecb timeout. \u0110\u1ec3 kh\u1eafc ph\u1ee5c, b\u1ea1n c\u00f3 th\u1ec3 thi\u1ebft l\u1eadp timeout trong c\u1ea5u h\u00ecnh request c\u1ee7a Axios nh\u01b0 sau:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>axios.get('https:\/\/api.example.com\/data', { timeout: 5000 }) \/\/ 5 seconds\n  .then(response => console.log(response.data))\n  .catch(error => {\n    if (error.code === 'ECONNABORTED') {\n      console.error('Request timed out');\n    } else {\n      console.error('Error:', error);\n    }\n  });<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-l\u1ed7i-m\u1ea1ng\"><strong>L\u1ed7i m\u1ea1ng<\/strong><\/h3>\n\n\n\n<p>C\u00e1c l\u1ed7i nh\u01b0 ENOTFOUND ho\u1eb7c ERR_NETWORK x\u1ea3y ra do s\u1ef1 c\u1ed1 k\u1ebft n\u1ed1i. \u0110\u1ec3 kh\u1eafc ph\u1ee5c, b\u1ea1n c\u00f3 th\u1ec3 ki\u1ec3m tra k\u1ebft n\u1ed1i m\u1ea1ng v\u00e0 URL API. \u0110\u1ed3ng th\u1eddi th\u00eam c\u01a1 ch\u1ebf retry cho c\u00e1c l\u1ed7i t\u1ea1m th\u1eddi.&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>async function fetchDataWithRetry(url, retries = 3) {\n  for (let i = 0; i &lt; retries; i++) {\n    try {\n      const response = await axios.get(url);\n      return response.data;\n    } catch (error) {\n      if (i === retries - 1) throw error;\n    }\n  }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-kho-debug-l\u1ed7i\"><strong>Kh\u00f3 debug l\u1ed7i<\/strong><\/h3>\n\n\n\n<p>\u0110\u00e2y l\u00e0 l\u1ed7i t\u1eeb Axios \u0111\u00f4i khi kh\u00f4ng r\u00f5 r\u00e0ng. B\u1ea1n c\u00f3 th\u1ec3 kh\u1eafc ph\u1ee5c b\u1eb1ng c\u00e1ch ki\u1ec3m tra chi ti\u1ebft error object:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>axios.get('https:\/\/api.example.com\/data')\n  .catch(error => {\n    console.error('Axios error:', error.toJSON());\n    console.error('Error message:', error.message);\n    console.error('Error config:', error.config);\n    console.error('Error response:', error.response);\n  });<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-promise-khong-d\u01b0\u1ee3c-x\u1eed-ly\"><strong>Promise kh\u00f4ng \u0111\u01b0\u1ee3c x\u1eed l\u00fd<\/strong><\/h3>\n\n\n\n<p>\u0110\u00e2y l\u00e0 l\u1ed7i qu\u00ean th\u00eam .catch() c\u00f3 th\u1ec3 d\u1eabn \u0111\u1ebfn c\u1ea3nh b\u00e1o unhandled promise rejection. \u0110\u1ec3 kh\u1eafc ph\u1ee5c, b\u1ea1n n\u00ean d\u00f9ng .catch() ho\u1eb7c try\/catch khi d\u00f9ng async ho\u1eb7c await \u0111\u1ec3 x\u1eed l\u00fd l\u1ed7i.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cac-cau-h\u1ecfi-th\u01b0\u1eddng-g\u1eb7p-v\u1ec1-axios-npm\"><span class=\"ez-toc-section\" id=\"Cac_cau_hoi_thuong_gap_ve_axios_npm\"><\/span><strong>C\u00e1c c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 axios npm<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-axios-co-t\u1ed1t-h\u01a1n-fetch-khong\"><strong>Axios c\u00f3 t\u1ed1t h\u01a1n fetch kh\u00f4ng?<\/strong><\/h3>\n\n\n\n<p>Trong qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng web, <strong>Axios v\u00e0 Fetch \u0111\u1ec1u l\u00e0 nh\u1eefng c\u00f4ng c\u1ee5 ph\u1ed5 bi\u1ebfn \u0111\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c HTTP request<\/strong>, m\u1ed7i gi\u1ea3i ph\u00e1p \u0111\u1ec1u c\u00f3 nh\u1eefng \u0111\u1eb7c \u0111i\u1ec3m v\u00e0 ph\u1ea1m vi s\u1eed d\u1ee5ng ri\u00eang.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Fetch API:<\/strong> API chu\u1ea9n t\u00edch h\u1ee3p s\u1eb5n trong tr\u00ecnh duy\u1ec7t, nh\u01b0ng n\u00f3 v\u1eabn c\u00f2n m\u1ed9t s\u1ed1 h\u1ea1n ch\u1ebf nh\u01b0 kh\u00f4ng t\u1ef1 \u0111\u1ed9ng parse <a href=\"https:\/\/itviec.com\/blog\/json-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">JSON<\/a>, kh\u00f4ng t\u1ef1 \u0111\u1ed9ng reject khi status tr\u1ea3 v\u1ec1 l\u00e0 l\u1ed7i, kh\u00f4ng c\u00f3 timeout built-in.<\/li>\n\n\n\n<li><strong>Axios: <\/strong>Cung c\u1ea5p c\u00e1c c\u01a1 ch\u1ebf t\u1ef1 \u0111\u1ed9ng parse JSON, m\u1eb7c \u0111\u1ecbnh reject khi response tr\u1ea3 v\u1ec1 status ngo\u00e0i 2xx, h\u1ed7 tr\u1ee3 timeout ho\u1eb7c c\u00f3 interceptors m\u1ea1nh m\u1ebd gi\u00fap g\u1eedi d\u1eef li\u1ec7u d\u1ec5 d\u00e0ng h\u01a1n.\u00a0<\/li>\n<\/ul>\n\n\n\n<p>Do \u0111\u00f3, trong c\u00e1c d\u1ef1 \u00e1n c\u00f3 quy m\u00f4 l\u1edbn ho\u1eb7c y\u00eau c\u1ea7u x\u1eed l\u00fd request ph\u1ee9c t\u1ea1p, Axios th\u01b0\u1eddng \u0111\u01b0\u1ee3c l\u1ef1a ch\u1ecdn \u0111\u1ec3 gi\u00fap m\u00e3 ngu\u1ed3n g\u1ecdn g\u00e0ng v\u00e0 d\u1ec5 b\u1ea3o tr\u00ec h\u01a1n. Tuy nhi\u00ean, Fetch v\u1eabn ph\u00f9 h\u1ee3p trong nh\u1eefng tr\u01b0\u1eddng h\u1ee3p c\u1ea7n gi\u1ea3i ph\u00e1p nh\u1eb9, t\u1ed1i gi\u1ea3n v\u00e0 kh\u00f4ng mu\u1ed1n th\u00eam dependency.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-axios-co-con-d\u01b0\u1ee3c-\u1ee9ng-d\u1ee5ng-nhi\u1ec1u-trong-l\u1eadp-trinh-hi\u1ec7n-nay\"><strong>Axios c\u00f3 c\u00f2n \u0111\u01b0\u1ee3c \u1ee9ng d\u1ee5ng nhi\u1ec1u trong l\u1eadp tr\u00ecnh hi\u1ec7n nay?<\/strong><\/h3>\n\n\n\n<p><strong>C\u00f3, <\/strong>b\u1ea1n v\u1eabn c\u1ea7n Axios n\u1ebfu mu\u1ed1n t\u1ed1i \u01b0u tr\u1ea3i nghi\u1ec7m khi g\u1ecdi API, \u0111\u1eb7c bi\u1ec7t l\u00e0 trong c\u00e1c d\u1ef1 \u00e1n quy m\u00f4 v\u1eeba v\u00e0 l\u1edbn. M\u1eb7c d\u00f9 Fetch \u0111\u00e3 \u0111\u01b0\u1ee3c c\u1ea3i thi\u1ec7n qua th\u1eddi gian, Axios v\u1eabn mang l\u1ea1i nhi\u1ec1u \u01b0u \u0111i\u1ec3m v\u01b0\u1ee3t tr\u1ed9i h\u01a1n. Fetch s\u1ebd ph\u00f9 h\u1ee3p cho c\u00e1c t\u00e1c v\u1ee5 \u0111\u01a1n gi\u1ea3n, nh\u01b0ng v\u1edbi nh\u1eefng d\u1ef1 \u00e1n c\u1ea7n qu\u1ea3n l\u00fd API ph\u1ee9c t\u1ea1p, Axios v\u1eabn l\u00e0 l\u1ef1a ch\u1ecdn t\u1ed1i \u01b0u.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-axios-phu-h\u1ee3p-v\u1edbi-front-end-hay-back-end\"><strong>Axios ph\u00f9 h\u1ee3p v\u1edbi front-end hay back-end?<\/strong><\/h3>\n\n\n\n<p><strong>Axios d\u00f9ng \u0111\u01b0\u1ee3c c\u1ea3 frontend v\u00e0 backend<\/strong>, \u0111\u1ed3ng th\u1eddi s\u1eed d\u1ee5ng linh ho\u1ea1t tr\u00ean nhi\u1ec1u n\u1ec1n t\u1ea3ng kh\u00e1c nhau gi\u00fap cho Axios tr\u1edf th\u00e0nh th\u01b0 vi\u1ec7n ph\u1ed5 bi\u1ebfn trong to\u00e0n b\u1ed9 h\u1ec7 sinh th\u00e1i JavaScript.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Frontend:<\/strong> Gi\u00fap c\u00e1c \u1ee9ng d\u1ee5ng web giao ti\u1ebfp v\u1edbi API \u0111\u1ec3 l\u1ea5y ho\u1eb7c g\u1eedi d\u1eef li\u1ec7u.<\/li>\n\n\n\n<li><strong>Backend:<\/strong> \u0110\u01b0\u1ee3c d\u00f9ng trong m\u00f4i tr\u01b0\u1eddng Node.js \u0111\u1ec3 x\u1eed l\u00fd c\u00e1c y\u00eau c\u1ea7u HTTP cho c\u00e1c t\u00e1c v\u1ee5 nh\u01b0 truy xu\u1ea5t d\u1eef li\u1ec7u, t\u00edch h\u1ee3p API ho\u1eb7c giao ti\u1ebfp ph\u00eda m\u00e1y ch\u1ee7.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-t\u1ed5ng-k\u1ebft-v\u1ec1-axios-npm\"><span class=\"ez-toc-section\" id=\"Tong_ket_ve_axios_npm\"><\/span><strong>T\u1ed5ng k\u1ebft v\u1ec1 axios npm<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><strong>Axios npm<\/strong> l\u00e0 l\u1ef1a ch\u1ecdn t\u1ed1i \u01b0u cho m\u1ecdi developer khi c\u1ea7n x\u1eed l\u00fd request HTTP m\u1ed9t c\u00e1ch \u0111\u01a1n gi\u1ea3n, b\u1ea3o m\u1eadt v\u00e0 d\u1ec5 m\u1edf r\u1ed9ng trong JavaScript. V\u1edbi c\u00fa ph\u00e1p r\u00f5 r\u00e0ng, kh\u1ea3 n\u0103ng t\u00f9y ch\u1ec9nh linh ho\u1ea1t v\u00e0 h\u1ed7 tr\u1ee3 interceptors m\u1ea1nh m\u1ebd, Axios gi\u00fap qu\u00e1 tr\u00ecnh giao ti\u1ebfp API tr\u1edf n\u00ean tr\u01a1n tru v\u00e0 \u0111\u00e1ng tin c\u1eady h\u01a1n. Sau khi n\u1eafm v\u1eefng c\u00e1ch c\u00e0i \u0111\u1eb7t, c\u1ea5u h\u00ecnh v\u00e0 x\u1eed l\u00fd l\u1ed7i, b\u1ea1n ho\u00e0n to\u00e0n c\u00f3 th\u1ec3 \u00e1p d\u1ee5ng Axios hi\u1ec7u qu\u1ea3 trong c\u00e1c d\u1ef1 \u00e1n front-end, back-end ho\u1eb7c mobile.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Axios npm l\u00e0 th\u01b0 vi\u1ec7n HTTP m\u1ea1nh m\u1ebd v\u00e0 linh ho\u1ea1t, \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng r\u1ed9ng r\u00e3i \u0111\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c request trong JavaScript nh\u1edd c\u00fa ph\u00e1p \u0111\u01a1n gi\u1ea3n, h\u1ed7 tr\u1ee3 Promise v\u00e0 kh\u1ea3 n\u0103ng ho\u1ea1t \u0111\u1ed9ng tr\u00ean c\u1ea3 tr\u00ecnh duy\u1ec7t l\u1eabn Node.js. \u0110\u00e2y l\u00e0 c\u00f4ng c\u1ee5 gi\u00fap developer giao ti\u1ebfp API d\u1ec5 d\u00e0ng h\u01a1n nh\u1edd [&hellip;]<\/p>\n","protected":false},"author":95,"featured_media":93952,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_gspb_post_css":"","footnotes":""},"categories":[109],"tags":[],"class_list":["post-93950","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-chuyen-mon-it"],"blocksy_meta":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.8 (Yoast SEO v27.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Axios npm l\u00e0 g\u00ec: C\u00e1ch c\u00e0i \u0111\u1eb7t v\u00e0 s\u1eed d\u1ee5ng chi ti\u1ebft cho ng\u01b0\u1eddi m\u1edbi - ITviec Blog<\/title>\n<meta name=\"description\" content=\"Chi ti\u1ebft v\u1ec1 Axios npm - th\u01b0 vi\u1ec7n HTTP ph\u1ed5 bi\u1ebfn gi\u00fap \u0111\u01a1n gi\u1ea3n h\u00f3a vi\u1ec7c g\u1eedi request trong JavaScript, h\u1ed7 tr\u1ee3 t\u1ea5t c\u1ea3 tr\u00ecnh duy\u1ec7t v\u00e0 Node.js.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/itviec.com\/blog\/axios-npm-la-gi\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Axios npm l\u00e0 g\u00ec: C\u00e1ch c\u00e0i \u0111\u1eb7t v\u00e0 s\u1eed d\u1ee5ng chi ti\u1ebft cho ng\u01b0\u1eddi m\u1edbi\" \/>\n<meta property=\"og:description\" content=\"Axios npm l\u00e0 th\u01b0 vi\u1ec7n HTTP m\u1ea1nh m\u1ebd v\u00e0 linh ho\u1ea1t, \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng r\u1ed9ng r\u00e3i \u0111\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c request trong JavaScript nh\u1edd c\u00fa ph\u00e1p \u0111\u01a1n gi\u1ea3n, h\u1ed7 tr\u1ee3 Promise v\u00e0\" \/>\n<meta property=\"og:url\" content=\"https:\/\/itviec.com\/blog\/axios-npm-la-gi\/\" \/>\n<meta property=\"og:site_name\" content=\"ITviec Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ITviec\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-30T14:45:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-30T14:45:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/12\/axios-npm-scaled.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"421\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Tuong Uyen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ITviec\" \/>\n<meta name=\"twitter:site\" content=\"@ITviec\" \/>\n<meta name=\"twitter:label1\" content=\"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tuong Uyen\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 ph\u00fat\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Axios npm l\u00e0 g\u00ec: C\u00e1ch c\u00e0i \u0111\u1eb7t v\u00e0 s\u1eed d\u1ee5ng chi ti\u1ebft cho ng\u01b0\u1eddi m\u1edbi - ITviec Blog","description":"Chi ti\u1ebft v\u1ec1 Axios npm - th\u01b0 vi\u1ec7n HTTP ph\u1ed5 bi\u1ebfn gi\u00fap \u0111\u01a1n gi\u1ea3n h\u00f3a vi\u1ec7c g\u1eedi request trong JavaScript, h\u1ed7 tr\u1ee3 t\u1ea5t c\u1ea3 tr\u00ecnh duy\u1ec7t v\u00e0 Node.js.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/itviec.com\/blog\/axios-npm-la-gi\/","og_locale":"vi_VN","og_type":"article","og_title":"Axios npm l\u00e0 g\u00ec: C\u00e1ch c\u00e0i \u0111\u1eb7t v\u00e0 s\u1eed d\u1ee5ng chi ti\u1ebft cho ng\u01b0\u1eddi m\u1edbi","og_description":"Axios npm l\u00e0 th\u01b0 vi\u1ec7n HTTP m\u1ea1nh m\u1ebd v\u00e0 linh ho\u1ea1t, \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng r\u1ed9ng r\u00e3i \u0111\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c request trong JavaScript nh\u1edd c\u00fa ph\u00e1p \u0111\u01a1n gi\u1ea3n, h\u1ed7 tr\u1ee3 Promise v\u00e0","og_url":"https:\/\/itviec.com\/blog\/axios-npm-la-gi\/","og_site_name":"ITviec Blog","article_publisher":"https:\/\/www.facebook.com\/ITviec","article_published_time":"2025-12-30T14:45:43+00:00","article_modified_time":"2025-12-30T14:45:46+00:00","og_image":[{"width":800,"height":421,"url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/12\/axios-npm-scaled.png","type":"image\/png"}],"author":"Tuong Uyen","twitter_card":"summary_large_image","twitter_creator":"@ITviec","twitter_site":"@ITviec","twitter_misc":{"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi":"Tuong Uyen","\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"13 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/itviec.com\/blog\/axios-npm-la-gi\/#article","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/axios-npm-la-gi\/"},"author":{"name":"Tuong Uyen","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/e97d0e359f8840eaea7dc3a96006a8d4"},"headline":"Axios npm l\u00e0 g\u00ec: C\u00e1ch c\u00e0i \u0111\u1eb7t v\u00e0 s\u1eed d\u1ee5ng chi ti\u1ebft cho ng\u01b0\u1eddi m\u1edbi","datePublished":"2025-12-30T14:45:43+00:00","dateModified":"2025-12-30T14:45:46+00:00","mainEntityOfPage":{"@id":"https:\/\/itviec.com\/blog\/axios-npm-la-gi\/"},"wordCount":3351,"publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"image":{"@id":"https:\/\/itviec.com\/blog\/axios-npm-la-gi\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/12\/axios-npm-scaled.png","articleSection":["Chuy\u00ean m\u00f4n IT"],"inLanguage":"vi"},{"@type":"WebPage","@id":"https:\/\/itviec.com\/blog\/axios-npm-la-gi\/","url":"https:\/\/itviec.com\/blog\/axios-npm-la-gi\/","name":"Axios npm l\u00e0 g\u00ec: C\u00e1ch c\u00e0i \u0111\u1eb7t v\u00e0 s\u1eed d\u1ee5ng chi ti\u1ebft cho ng\u01b0\u1eddi m\u1edbi - ITviec Blog","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/itviec.com\/blog\/axios-npm-la-gi\/#primaryimage"},"image":{"@id":"https:\/\/itviec.com\/blog\/axios-npm-la-gi\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/12\/axios-npm-scaled.png","datePublished":"2025-12-30T14:45:43+00:00","dateModified":"2025-12-30T14:45:46+00:00","description":"Chi ti\u1ebft v\u1ec1 Axios npm - th\u01b0 vi\u1ec7n HTTP ph\u1ed5 bi\u1ebfn gi\u00fap \u0111\u01a1n gi\u1ea3n h\u00f3a vi\u1ec7c g\u1eedi request trong JavaScript, h\u1ed7 tr\u1ee3 t\u1ea5t c\u1ea3 tr\u00ecnh duy\u1ec7t v\u00e0 Node.js.","breadcrumb":{"@id":"https:\/\/itviec.com\/blog\/axios-npm-la-gi\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/itviec.com\/blog\/axios-npm-la-gi\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/axios-npm-la-gi\/#primaryimage","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/12\/axios-npm-scaled.png","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/12\/axios-npm-scaled.png","width":800,"height":421,"caption":"axios npm l\u00e0 g\u00ec - itviec blog"},{"@type":"BreadcrumbList","@id":"https:\/\/itviec.com\/blog\/axios-npm-la-gi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Chuy\u00ean m\u00f4n IT","item":"https:\/\/itviec.com\/blog\/chuyen-mon-it\/"},{"@type":"ListItem","position":2,"name":"Axios npm l\u00e0 g\u00ec: C\u00e1ch c\u00e0i \u0111\u1eb7t v\u00e0 s\u1eed d\u1ee5ng chi ti\u1ebft cho ng\u01b0\u1eddi m\u1edbi"}]},{"@type":"WebSite","@id":"https:\/\/itviec.com\/blog\/#website","url":"https:\/\/itviec.com\/blog\/","name":"ITviec Blog","description":"IT Jobs &amp; People in Vietnam","publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/itviec.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Organization","@id":"https:\/\/itviec.com\/blog\/#organization","name":"ITviec","url":"https:\/\/itviec.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","width":1800,"height":1800,"caption":"ITviec"},"image":{"@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/ITviec","https:\/\/x.com\/ITviec","https:\/\/www.linkedin.com\/company\/itviec","https:\/\/www.youtube.com\/channel\/UCYthAQ3bcGr57M_ag5gHDvQ"]},{"@type":"Person","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/e97d0e359f8840eaea7dc3a96006a8d4","name":"Tuong Uyen","image":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2022\/10\/tuong-uyen-profile-picture-100x100.jpg","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2022\/10\/tuong-uyen-profile-picture-100x100.jpg","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2022\/10\/tuong-uyen-profile-picture-100x100.jpg","caption":"Tuong Uyen"},"url":"https:\/\/itviec.com\/blog\/author\/tuong-uyen-pikachu\/"}]}},"_links":{"self":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/93950","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/users\/95"}],"replies":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/comments?post=93950"}],"version-history":[{"count":2,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/93950\/revisions"}],"predecessor-version":[{"id":93953,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/93950\/revisions\/93953"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media\/93952"}],"wp:attachment":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media?parent=93950"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/categories?post=93950"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/tags?post=93950"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}