使用JQuery的ajax抓取网页

问题描述

| 我只需要从特定的(跨域)请求中获取\'html \'。 我正在使用传递ѭ0J的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,我确实看到了生成的脚本标记和来自远程服务器的响应,但是没有调用我的回调。 如何获取
ajax()
调用返回的html?首先我使用的是错误功能吗?     

解决方法

        不会调用该回调函数,因为返回的文档不是包含对该回调函数进行调用的JavaScript应用程序。 JSON-P通过运行第三方JS来工作,该第三方JS会在您的页面上调用一个函数。 您无法使用客户端代码从其他来源获取未表示为JavaScript的内容。 如果要获取此类内容,则需要通过服务器进行代理。一种来自同一来源(这样您就可以直接获取内容),也可以将其转换为JSON-P。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...