Help needed. Im writing a function that returns result of ajax call but i did not get any results, i guess it’s a scope issue, but is there any way to do it? Here is my code:
function Favorites() {
var links;
$.ajax({
type: "GET",
url: "/Services/Favorite.svc/Favorites",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false,
success: function(msg) {
links = (typeof msg.d) == 'string' ? eval('(' + msg.d + ')') : msg.d;
}
});
return links;
};
Your problem is that the HTTP request you’re making is asnychronous and your
Favoritesfunction returns before the Ajax request has come back. You will need to change your function so that it accepts a callback to be executed once the response has come back:Aside: convention is that only functions intended to be used as constructors should start with a capital letter, so your function would be better named as
favorites.