SOLUCION JQUERY ERROR: $.AJAX IS NOT A FUNCTION


Siguiendo la ruta de aprendizaje sobre JavaScript, en FreeCodeCamp (Sitio recomendado 100% a todos aquellos entusiastas de la Programación) continuamos en los ejercicios con APIs y esta vez correspondió el turno a Wikipedia.

La tarea consistió en construir una Web que incluyera un enlace que consiga una publicación al azar y un item de búsqueda que haga uso de la API para los artículos relacionados.

Su API es de libre acceso via su URL https://www.mediawiki.org/wiki/API:Main_page .

En el desarrollo de la tarea y trabajando en paralelo, bajo mi PC en un archivo HTML y desde CodePen se origino un incidente que mostró en la consola del navegador el error:

Uncaught TypeError: $.ajax is not a function(…)

Leyendo la documentación oficial de JQuery y  surfeando la red, el problema está en hacer uso de la librería minificada por lo que la solución fue seleccionar la librería en forma completa.

El ejemplo aqui.



 El error se origina al enlazar JQuery asi (en mi caso minificado desde un CDN):
src="https://code.jquery.com/jquery-3.2.1.slim.min.js"
integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" 
crossorigin="anonymous"

La solución, modificar por:
src="https://code.jquery.com/jquery-3.2.1.js"
integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE=" crossorigin="anonymous"

El usuario de GitHub bardiharborow  expone en un Post:
Bootstrap only requires the slim build of jQuery. If you need to use features such as $.ajax, which are not included in the slim build, you should use the full build instead.

Por lo que explícitamente la librería minificada no incluye todas las funcionalidades.

Espero que te haya ayudado.

Later....

Comentarios