Guías de Make it Real
  • Introduction
  • Preparación
    • Conceptos básicos
    • El editor de texto
    • La línea de comandos
    • Git y Github
  • Git
    • Instalación y configuración
    • Conceptos y comandos esenciales
    • Ignorando archivos y carpetas
    • Trabajando con ramas
    • Repositorios remotos
    • Etiquetas
    • Reescribiendo la historia
    • Stashing
    • Github
  • HTML y CSS
    • Introducción a HTML
    • Introducción a CSS
    • Más elementos de HTML
    • Tablas
    • Formularios
    • El modelo de caja en CSS
    • Fondos (backgrounds)
    • Posicionamiento
    • Selectores CSS
    • Bordes, sombras y gradientes
    • Media Queries
    • Unidades en CSS
    • Flexbox
  • Bootstrap 3
    • Primeros pasos
    • Elementos básicos de HTML
    • Componentes
    • La grilla
    • Personalizando Bootstrap
    • Utilizando plantillas
  • Bootstrap 4
    • Primeros pasos
    • Elementos básicos de HTML
    • Componentes
    • La grilla
    • Clases utilitarias
    • Personalizando Bootstrap
  • Ruby
    • Primeros pasos
    • Tipos y operadores
    • Variables y entrada de usuario
    • Condicionales
    • Ciclos
    • Arreglos
    • Más cadenas de texto
    • Hashes
    • Métodos
    • Manipulación de archivos
    • Gemas
  • Programación Orientada a Objetos en Ruby
    • Clases y objetos
    • Métodos y atributos de clase
    • Herencia
    • Módulos
    • Excepciones
  • JavaScript I
    • Primeros pasos
    • Tipos y operadores
    • Variables
    • Condicionales
    • Ciclos
    • Arreglos
    • Más cadenas de texto
    • Funciones
    • Objetos literales
    • Manipulación de archivos
  • JavaScript en el navegador
    • Primeros pasos
    • Manipulando HTML
    • Escuchando eventos
    • Local Storage
    • History API
    • Canvas
    • Notificaciones Web
    • Audio y Video
    • Arrastrar y soltar
    • JSON
    • Realizando peticiones HTTP
  • jQuery
    • Primeros pasos
    • Manipulando HTML
    • Escuchando eventos
    • Plugins
    • Realizando peticiones con AJAX
  • JavaScript II
    • Prototipos
    • Librerías (Node.js)
    • ES6
    • Uso de this (call, apply, bind)
    • Programación funcional
    • Scope, hoisting, closures
    • Programación asincrónica
    • Testing
  • HTTP y Sinatra
    • Primeros pasos con Sinatra
    • El protocolo HTTP
    • Rutas
    • Formularios
    • Cookies y sesión
  • Bases de datos
    • Bases de datos relacionales
    • SQL
    • DDL
    • MongoDB
  • Ruby on Rails I
    • Primeros pasos
    • Arquitectura
    • Rutas
    • Layouts y rendering
    • ActiveRecord - Modelos
    • ActiveRecord - Migraciones
    • ActiveRecord - Validaciones
    • ActiveRecord - Asociaciones
    • ActiveRecord - Scopes
    • ActiveRecord - Callbacks
    • Recursos REST
    • Formularios
    • Autenticación con Devise
    • Sass y Bootstrap
    • Envío de correos
    • Carga de imágenes
    • Seeds
    • Heroku
  • Ruby on Rails II
    • Usando JavaScript (y jQuery) en Rails
    • Testing en Ruby
    • Testing en Rails
    • Creando una Web API
    • Web Sockets
  • Express.js
    • Primeros Pasos
    • El protocolo HTTP
    • Rutas
    • Vistas
    • Middlewares y manejo de errores
    • Formularios
    • Cookies y sesión
  • Express.js II
    • Mongoose
    • Web Sockets
    • Autenticación
    • Envío de correos
    • Cargar imágenes
    • Deployment
    • Testing
    • Creando una Web API
  • React
    • Primeros pasos
    • JSX
    • Componentes
    • Más sobre estado
    • Formularios
    • Peticiones HTTP con Axios
    • React Hooks
    • React Context
    • React Bootstrap
    • React Router
    • Carga de Imágenes
    • Testing
    • Estructura de carpetas
    • Componentes de clase
  • Redux
    • Primeros pasos
    • Action creators
    • Usando la librería react-redux
    • Middlewares
    • Operaciones asincrónicas con redux-thunk
    • Combinando funciones reductoras
    • Testing
    • Redux Tool Kit
  • Algoritmos
    • Describiendo un algoritmo
    • Complejidad (Big-O)
    • Estructuras de datos
    • Recursión
    • Ordenamiento
    • Búsqueda
    • Programación dinámica
  • Python
    • Primeros Pasos
    • Tipos y Variables
    • Funciones
    • Control de Flujo
    • Listas
    • Ciclos
    • Diccionarios, Tuplas y Sets
  • NumPy
    • Primeros Pasos
    • Arreglos
    • Arreglos Multidimensionales
    • Estadística con NumPy
    • Distribución Estadística
  • Pandas
    • Primeros Pasos
    • Inspección y Selección de Datos
    • Modificando Dataframes
    • La Función Lambda
    • Aggregates en Pandas
    • Múltiples Tablas
Powered by GitBook
On this page
  • Fetch API
  • Axios
  1. JavaScript en el navegador

Realizando peticiones HTTP

PreviousJSONNextjQuery

Last updated 2 years ago

Desde el navegador podemos realizar peticiones HTTP a servidores remotos con JavaScript. A esta técnica también se le conoce como AJAX (Asynchronous JavaScript and XML).

En este capítulo vamos a ver dos formas de realizar peticiones HTTP a servidores remotos: el Fetch API y una librería llamada .

Nota 1: si aún no has trabajado con programación asincrónica con JavaScript te recomendamos que veas primero antes de continuar.

Nota 2: jQuery también incluye un API para realizar peticiones HTTP que puedes consultar en .

Fetch API

El Fetch API es el reemplazo de un objeto llamado XMLHttpRequest (XHR), que era lo que se utilizaba antes para hacer peticiones remotas. XMLHttpRequest es engorroso de utilizar y XML, que es un formato de intercambio de información, ha caído en desuso en favor de .

Para utilizar el Fetch API no necesitas instalar ninguna librería. Sin embargo, algunos navegadores no lo soportan aún, particularmente Internet Explorer <= 13. Te recomendamos para ver el soporte actual.

Para realizar una petición HTTP con el Fetch API se utiliza el método fetch, que en su versión más simple recibe una URL:

fetch('https://jsonplaceholder.typicode.com/todos/1')

fetch retorna una promesa que se resuelve con la respuesta del servidor:

fetch('https://jsonplaceholder.typicode.com/todos/1')
  .then(function(response) {
    // response.status (el código de respuesta)
    // response.headers.get("Content-Type")
    // ..
  })

Para obtener el cuerpo de la respuesta debemos utilizar el método json del response y anidarlo en la cadena de promesas:

fetch('https://jsonplaceholder.typicode.com/todos/1')
  .then(function(response) { return response.json() })
  .then(function(data) {
    console.log(data)
  })

fetch recibe un segundo parámetro, un objeto que podemos utilizar para personalizar nuestra petición. Por ejemplo:

fetch(url, {
    method: 'POST',
    headers: {
      "Content-type": "application/json"
    },
    body: '{ "name": "Pedro Perez" }'
  })

Axios

Axios es una librería construída sobre XMLHttpRequest (XHR) pero con un API similar al de Fetch API (basado en promesas). Es ideal cuando necesitamos soportar navegadores antiguos que aún no incluyen Fetch API.

El primer paso para utilizar Axios es instalar la librería que lo puedes hacer incluyendo la siguiente línea:

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

Para realizar peticiones HTTP con Axios utiliza el objeto axios, que expone métodos para los diferentes verbos HTTP como GET, POST, etc. Veamos un ejemplo:

axios.get('https://jsonplaceholder.typicode.com/todos/1')
  .then(function(data) {
    console.log(data)
  })

Los métodos que expone axios reciben un segundo parámetro, un objeto que puedes utilizar para personalizar la petición:

axios.post('https://jsonplaceholder.typicode.com/todos/', {
  headers: {
    "Content-type": "application/json"
  },
  data: {
    title: "Prueba",
  }
})

Para ver la documentación completa de Axios te recomendamos consultar de la librería.

Axios
esta guía
esta guía
JSON
consultar esta página
el respositorio en Github