使用JQuery的ajax来抓取网页

时间:2011-06-13 06:35:00

标签: jquery

我只需要从特定(跨域)请求中获取'html'。

我正在使用传递dataType=json的JQuery.ajax()函数,以便JQuery生成script标记并触发请求。 这是代码:

            var url="http://www.google.com/callback=?";
            $.ajax({
                type: 'GET',
                url: url,
                dataType: 'json',
                success: function(data) {$("#out").append("success "+data); },
                error: function(data) {$("#out").append("failure "+data); },
                complete: function(data) {$("#out").append("complete "+data); },
                data: {},
                async: false
            });

现在,奇怪的是,使用firebug,我确实看到了生成的脚本标记和来自远程服务器的响应,但没有调用我的回调。 Jquery's script tag injection for cross domain calls

如何从ajax()电话中获取html?我首先使用了错误的功能吗?

1 个答案:

答案 0 :(得分:0)

未调用回调,因为返回的文档不是由对该回调的函数调用组成的JavaScript应用程序。

JSON-P通过运行调用页面上的函数的第三方JS来工作。

can't use client side code to get content that isn't expressed as JavaScript from a different origin

如果您想获得此类内容,则需要通过服务器进行代理。两个来自同一个来源(因此您可以直接获取内容)或一个transforms it to JSON-P