valor type retornar llamar funcion error ejemplos desde javascript jquery ajax typeerror

type - llamar funcion php desde javascript ajax



Mi javascript devuelve este error: $.ajax no es una funciĆ³n (2)

No estoy seguro de qué sucede, pero recibo este error de mi consola Chrome:

jquery-3.2.1.slim.min.js:1244 jQuery.Deferred exception: $.ajax is not a function TypeError: $.ajax is not a function at HTMLDocument.<anonymous> (file:///C:/Users/Adam/Desktop/UseTime/js/example.js:3:7) at j (file:///C:/Users/Adam/Desktop/UseTime/js/jquery-3.2.1.slim.min.js:1193:55) at k (file:///C:/Users/Adam/Desktop/UseTime/js/jquery-3.2.1.slim.min.js:1199:45) undefined r.Deferred.exceptionHook @ jquery-3.2.1.slim.min.js:1244 jquery-3.2.1.slim.min.js:1247 Uncaught TypeError: $.ajax is not a function at HTMLDocument.<anonymous> (example.js:3) at j (jquery-3.2.1.slim.min.js:1193) at k (jquery-3.2.1.slim.min.js:1199)

De este JavaScript:

$(function() { //when the DOM is ready var times; //declare global variable $.ajax({ //set up request beforeSend: function (xhr) { //before requesting data if (xhr.overrideMimeType) { //if supported xhr.overrideMimeType("application/json"); // set MIME to prevent errors } } }); //funciton that collect data from the json file function loadTimetable() { //decalre function $.getJSON(''data/example.json'') //try to collect json data .done(function (data) { //if succesful times = data; //store in variable }).fail(function () { //if a problem: show message $(''#event'').html(''Sorry! we couldnt load your time table at the moment''); }); } loadTimetable(); //call the function //CLICK ON TEH EVENT TO LOAD A TIME TABLE $(''#content'').on(''click'', ''#event a'', function (e) { //user clicks on place e.preventDefault(); //prevent loading page var loc = this.id.toUpperCase(); //get value of id attr var newContent = ""; for (var i = 0; i < times[loc].length; i++) { // loop through sessions newContent += ''<li><span class = "time">'' + times[loc][i].time + ''</span>''; newContent += ''<a href = "descriptions.html#''; newContent += times[loc][i].title.replace(/ /g, ''-'') + ''">''; newContent += times[loc][i].title + ''</a></li>''; } $(''#sessions'').html(''<ul>'' + newContent + ''</ul>''); // Display Time $(''#event a.current'').removeClass(''current''); // update selected link $(this).addClass(''current''); $(''#details'').text(''''); }); //CLICK ON A SESSION TO LEAD THE DESCRIPTION $(''#content'').on(''click'', ''#sessions li a'', function (e) { //click on session e.preventDefault(); // prevent loading var fragment = this.href; //title is in href fragment = fragment.replace(''#'', '' #''); //Add Space before # $(''#details'').load(fragment); //to load info $(''#sessions a.current'').removeClass(''current''); //update selected }); //CLICK ON PRIMARY NAVIGATION $(''nav a'').on(''click'', function (e) { //click on nav e.preventDefault(); //prevent loading var url = this.href; //get UR: to load $(''nav a.current'').removeClass(''current''); $(this).addClass(''current''); $(''#container'').remove(); //remove old $(''#content'').load(url + '' #container'').hide().fadeIn(''slow''); // add new }); });

No estoy seguro de si es un problema con la forma en que estoy iniciando .ajax o si mi jquery no está implementado correctamente. Creo que es. ¿Alguna idea?

editar: aquí está el html que acompaña al script anterior

<!DOCTYPE html> <body> <header> <h1>UseTime</h1> <nav> <a href="jq-load.html">HOME</a> <a href="jq-load.html2">PROFILE</a> <a href="jq-load.html4">MANAGE TASKS</a> <a href="usetime.html">TIME TABLE</a> </nav> </header> <section id="content"> <div id="container"> <div class="third"> <div id="event"> <a id="class1" href="class1.html"><img src="" alt="class1" /> Class 1 </a> <a id="class2" href="class2.html"><img src="" alt="class2" /> Class 2 </a> <a id="class3" href="class3.html"><img src="" alt="class3" /> Class 3 </a> </div> </div> <div class="third"> <div id="sessions"> Select a Class from the left </div> </div> <div class="third"> <div id="details"> Details </div> </div> </div> <!-- container --> </section> <!-- content --> <script src="js/jquery-3.2.1.slim.min.js"></script> <script src="js/example.js"></script> </body>


Estás utilizando una versión delgada de jQuery. No admite llamadas ajax. Utilizar

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>

en lugar de eso

Complexión delgada

A veces no necesita ajax, o prefiere usar una de las muchas bibliotecas independientes que se centran en las solicitudes de ajax. Y a menudo es más simple usar una combinación de CSS y manipulación de clases para todas sus animaciones web. Junto con la versión regular de jQuery que incluye los módulos ajax y de efectos, hemos lanzado una versión "delgada" que excluye estos módulos. En general, excluye ajax, los efectos y el código actualmente en desuso. El tamaño de jQuery rara vez es una preocupación de rendimiento de carga en estos días, pero la construcción delgada es aproximadamente 6k bytes comprimidos más pequeños que la versión normal: 23.6k frente a 30k. Estos archivos también están disponibles en el paquete npm y en el CDN:

https://code.jquery.com/jquery-3.1.1.slim.js https://code.jquery.com/jquery-3.1.1.slim.min.js

Referido del blog jQuery


La versión delgada de jQuery 3 no es compatible con ajax.

Según los documentos de lanzamiento ,

Junto con la versión regular de jQuery que incluye los módulos ajax y de efectos, estamos lanzando una versión "delgada" que excluye estos módulos. En general, excluye ajax , los efectos y el código actualmente en desuso.

Para usar el método .ajax , simplemente use la versión completa uno.

Pruebe este (jquery-3.2.1.min.js) en lugar de slim (jquery-3.2.1.slim.min.js)

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>