支持DOM解析和跨站点ajax的应用程序框架

时间:2011-07-09 17:33:14

标签: ajax web-applications dom gwt web-frameworks

我想创建一个可以获取不同网站并从DOM中提取数据的应用程序。我打算在Google Web Toolkit中使用XMLHttpRequest来实现它。但是,由于同源策略,XMLHttpRequest似乎不起作用。

我想知道是否存在支持DOM解析和跨站点Ajax功能的其他应用程序框架?

2 个答案:

答案 0 :(得分:0)

jquery和各种类似的dojo,YUI通过hack支持跨浏览器请求。

由于相同的原始策略,您无法向其他域发出Ajax请求,因此要将此类请求作为常用的hack http://en.wikipedia.org/wiki/JSONP

演示以描述功能

Site-1的脚本

function MakeThirdPartyRequest()
{
     //make sure this domain returns pure json
     var Url="http://SomeOtherDomain.com"; 

      //now using javascript you add this TAG to body of html
     <script src="Url" type="text/javascript"></script>
}

    function jsonFromThirdParty(data)
{
 alert(data);
}

网站2应以此格式返回数据

jsonFromThirdParty("hello iam data from other domain");

您可以使用某些第三方JavaScript库

以下是制作跨域ajax请求的代码

jQuery.ajax({
     url:'http://some_domain',
     dataType:'jsonp',
     type:'get',
     success:function(data)
    {
       alert(data);
    }
});

答案 1 :(得分:0)

您可以从其他域下载JSON数据。由于安全性,将无法访问HTML或XML DOM。在这种情况下,我看到两个选项:

  1. 您将向页面原始服务器发出请求,该请求将请求代理到实际的Web服务器,从而绕过安全限制。

  2. 您可以使用某些服务将HTML或XML转换为JSON。我知道只有http://open.dapper.net/这样做,但你需要首先在页面中手动定义记录,因此它只适用于预定义的页面集,而不是用户输入的URL。但也许有XML到JSON转换器可以转换任何给定的URL。这不难做到。