JQuery issue "TypeError: $.getJSON is not a function"

JavascriptJquerySlim Jquery

Javascript Problem Overview


I've got this piece of code:

$(document).ready(function () {
    $.getJSON('http://localhost:5000/', function (response) {
        console.log(response);
    });
});

localhost:5000 is a flask/python script that returns a json like:

{
  "data": [
    0, 
    0, 
    0, 

And I'm getting:

$.getJSON is not a function TypeError: $.getJSON is not a function

Any tips where I can start untangling the whoolball?

Thanks!

Edit:

HTML:

<!DOCTYPE html>
<html>

<head>
    <script src="https://code.jquery.com/jquery-3.1.1.slim.min.js"></script>
    <script src="lib/main.js"></script>
</head>

<body>
</body>

</html>

lib/main.js is where the document.ready is located.

Thanks!

Javascript Solutions


Solution 1 - Javascript

You seem to be using slim version of jquery which does not have the method getJSON thats why you are getting this error.

Please use the full version of jquery instead from the below link.

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

Slim version of jquery excludes ajax, animations effects etc

Solution 2 - Javascript

Thus happens commonly when migrating codebases from jQuery v1.x+ to v3.0+ as jQuery updated/deprecated/discontinued some of it's API.

I recommend using jQuery Migrate which will address this, along with other issues:

Get it here via CDN:

https://cdnjs.com/libraries/jquery-migrate

If using Gulp/Grunt, you can import into your project using

npm install --save jquery jquery-migrate

Github Repository - https://github.com/jquery/jquery-migrate

Read more about jQuery v3.0+.. http://blog.jquery.com/2016/06/09/jquery-3-0-final-released/

Solution 3 - Javascript

function cinta(){
$.getJSON('http://localhost:5000/', function (response) {
        console.log(response);
    });
}
cinta();
$(document).ready(function () {
  console.log('yesss');  
});

This work for me in python flask

Solution 4 - Javascript

You can also use Fetch with async and await:

async function getData(){
  const response = await fetch( "http://localhost:5000/"
);
  return response.json();
}


getData().then((data) => {
//... your code
})

Live demo

Solution 5 - Javascript

I had the same error with my piece of code,

$.getJson("/foo.json")

The issue was that my function is actually spelled

$.getJSON

NOT $.getJson.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionGabrielView Question on Stackoverflow
Solution 1 - JavascriptArunaView Answer on Stackoverflow
Solution 2 - Javascriptchouxy-devView Answer on Stackoverflow
Solution 3 - JavascriptIrviano YoeView Answer on Stackoverflow
Solution 4 - Javascriptmustapha mekhatriaView Answer on Stackoverflow
Solution 5 - JavascriptnohumanmanView Answer on Stackoverflow