开发者

jQuery. Assign JSON as a result to a variable

I use this helper function to receive JSON results for my requests:

function getData(url) {
    $.get(url,
         function(data) {
             response = data;
             return response;
         }, 'application/json');
}

I give it some string as a part of url from my web application, like '/api/getusers', so开发者_开发知识库 it looks like getData('/api/getusers'). Now I need that string result containing JSON data that I receive from the url to be assigned to my variable, so it would look like this: var result = getData('/api/getusers'). Then I will process this JSON data. The problem is with the returning the response variable. It's undefined. Thanks!


try this

function getData(url) {
var data;
    $.ajax({
        async: false, //thats the trick
        url: 'http://www.example.com',
        dataType: 'json',
        success: function(response){
           data = response;
        }
    });
    return data;
}


It's an asynchronous operation, meaning that function(data) { ... } runs later when the response from the server is available, long after you returned from getData(). Instead, kick off whatever you need from that function, for example:

function getData(url, callback) {
    $.get(url, callback, 'application/json');
}

Then when you're calling it, pass in a function or reference to a function that uses the response, like this:

getData("myPage.php", function(data) {
  alert("The data returned was: " + data);
});


Use $.ajax

$.ajax({
    url: 'http://www.example.com',
    dataType: 'json',
    success: function(data){
       alert(data.Id);
    }
});
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜