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

发布于 2024-12-04 08:08:39 字数 632 浏览 1 评论 0原文

有人知道为什么以下代码失败吗?

$(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>';

        }
    }
  );
    }
} 

我错过了什么吗?

Do someone have any idea why the following code fails

$(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>';

        }
    }
  );
    }
} 

Did I miss something?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

巨坚强 2024-12-11 08:08:39

如果希望返回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');

the YQL format parameter needs to be set to json if you want it to return json.

Test your YQL here: http://developer.yahoo.com/yql/console/

make sure it returns valid jsonp, then copy the url from the bottom and substitute your url.

Edit:

I guess one way to do it would be with an IFrame,

var iframe = $("<iframe src='" + yoururl + "' style='display: none;'></iframe>");
iframe.load(function(){
  alert('request sent');
  setTimeout(function(){
    iframe.remove();
  },10);
}).appendTo('body');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文