The only way to get YQL results through client-side JavaScript is through JSON-P (or using an optional proxy server). Here is the wrapper for the YQL service:
function YQLQuery(query, callback) { this.query = query; this.callback = callback || function(){}; this.fetch = function() { if (!this.query || !this.callback) { throw new Error('YQLQuery.fetch(): Parameters may be undefined'); } var scriptEl = document.createElement('script'), uid = 'yql' + +new Date(), encodedQuery = encodeURIComponent(this.query.toLowerCase()), instance = this; YQLQuery[uid] = function(json) { instance.callback(json); delete YQLQuery[uid]; document.body.removeChild(scriptEl); }; scriptEl.src = 'http://query.yahooapis.com/v1/public/yql?q=' + encodedQuery + '&format=json&callback=YQLQuery.' + uid; document.body.appendChild(scriptEl); }; }
Application:
// Construct your query: var query = "select * from rss where url='somefeed.com' limit 1"; // Define your callback: var callback = function(data) { var post = data.query.results.item; alert(post.title); }; // Instantiate with the query: var firstFeedItem = new YQLQuery(query, callback); // If you're ready then go: firstFeedItem.fetch(); // Go!!
Additional information : http://james.padolsey.com/javascript/using-yql-with-jsonp/
James source share