繁体   English   中英

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

[英]application framework which support DOM parsing and cross-site ajax

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

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

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);
    }
});

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM