使用yahoo api的Ajax请求不起作用?

时间:2011-09-14 15:30:27

标签: jquery ajax yql

有人知道以下代码失败的原因

$(document).ready(function () {

doAjax("http://somedomain.com/page.aspx");
});

function doAjax(url) {
    if (url.match('^http')) {
        $.getJSON("http://query.yahooapis.com/v1/public/yql?" +
            "q=select%20*%20from%20html%20where%20url%3D%22" +
            encodeURIComponent(url) +
            "%22&format=xml'&callback=?",
    function (data) {
        if (data.results[0]) {

            var msg = 'success';
        } else {
            var errormsg = '<p>Error: could not load the widget.</p>';

        }
    }
  );
    }
} 

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

如果希望它返回json,则需要将YQL格式参数设置为json。

在此处测试您的YQL:http://developer.yahoo.com/yql/console/

确保它返回有效的jsonp,然后从底部复制url并替换你的url。

编辑:

我想有一种方法可以使用IFrame,

var iframe = $("<iframe src='" + yoururl + "' style='display: none;'></iframe>");
iframe.load(function(){
  alert('request sent');
  setTimeout(function(){
    iframe.remove();
  },10);
}).appendTo('body');