JQuery issue "TypeError: $.getJSON is not a function"
JavascriptJquerySlim JqueryJavascript 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
})
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
.