skip to Main Content

I have a function using jQuery AJAX to return data from a data file. However, I cannot get the function to return the value. Any ideas?

    $(document).ready(function () {
        function getdata() {
            var result = 'default value';

            $.ajax({
                url: 'data/json/load.json',
                method: 'GET',
                dataType: 'json',
                success: function (response) {
                    result = response.data;
                    console.log('this is working and the result is: ' + result);
                    return result;
                }
            });

            return result;
        }

        var returndata = getdata();

        //I'm trying to return the results from my AJAX call here:
        console.log(returndata)
    });     

2

Answers


  1. $(document).ready(function () {
        async function getdata() {
            await $.ajax({
                url: 'https://api.publicapis.org/entries',
                method: 'GET',
                dataType: 'json',
                success: function (response) {
                    result = response;
                }
            });
            return result
        }
    
        getdata().then((result) => console.log(result));
        
     });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    Login or Signup to reply.
  2. You should get familiar with how Promises work, they’re very convenient.

    That’s how You could use them in your code:

       $(document).ready(function () {
    async function getdata() {
        var result = 'default value'
    
    
        await $.ajax({
            url: 'https://api.publicapis.org/entries',
            method: 'GET',
            dataType: 'json',
            success: function (response) {
                result = response
                console.log('this is working and the result is: ' + result)
            }
        })
    
        return result;
    }
    
    getdata().then(function(result) {
        returndata = result
        console.log(returndata)
    })
    })
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search