使用YQL的跨域问题

时间:2013-08-01 23:16:05

标签: jquery ajax json cross-domain jsonp

我正在尝试使用jQuery通过ajax访问此URL(在我的域之外) http://www.decolar.com/shop/flights/data/search/roundtrip/sao/orl/2013-09-11/2013-09-19/1/0/0/FARE/ASCENDING/NA/NA/NA/NA/NA

我试图用YQL实现这一点。

这是我的代码:

        var url = 'http://www.decolar.com/shop/flights/data/search/roundtrip/sao/orl/2013-09-11/2013-09-19/1/0/0/FARE/ASCENDING/NA/NA/NA/NA/NA'; 

        var consultar = "http://query.yahooapis.com/v1/public/yql?"+
                    "q=select%20*%20from%20html%20where%20url%3D%22"+
                    encodeURIComponent(url)+
                    "%22&format=xml&callback=?";

        $.getJSON( consultar ,
            function(data){
                console.log(data);                    
                console.log(consultar);
                $('#content').html(data.results[0]);
            }
        );  

我可以使用我的浏览器访问此Url,但是使用YQL,我没有返回数据:(

救救我! :(

1 个答案:

答案 0 :(得分:1)

问题在于,XMLHttpRequest是$ .getJSON背后的魔力,它不支持跨源请求,而在某些浏览器支持的标头中没有特殊的握手,而其他浏览器则不支持。 jQuery确实支持发出跨域请求,但你必须使用脚本标记注入和JSONP之类的东西来做。

有关详细信息,请参阅此主题:jQuery AJAX cross domain