Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
支持DOM解析和跨站点ajax的应用程序框架_Ajax_Web Applications_Dom_Gwt_Web Frameworks - Fatal编程技术网

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

支持DOM解析和跨站点ajax的应用程序框架,ajax,web-applications,dom,gwt,web-frameworks,Ajax,Web Applications,Dom,Gwt,Web Frameworks,我想做一个应用程序,可以得到不同的网站和提取数据从他们的DOM。我打算在GoogleWebToolkit中使用XMLHttpRequest来实现它。然而,XMLHttpRequest似乎不起作用,因为同源策略 我想知道是否还有其他应用程序框架支持DOM解析和类似于Ajax的跨站点功能?jquery和所有类似dojo的应用程序框架,YUI通过黑客技术支持跨浏览器请求 由于同源策略,您无法向其他域发出ajax请求,因此发出此类请求是一种常用的攻击 演示来描述功能 Site-1的脚本 function

我想做一个应用程序,可以得到不同的网站和提取数据从他们的DOM。我打算在GoogleWebToolkit中使用XMLHttpRequest来实现它。然而,XMLHttpRequest似乎不起作用,因为同源策略


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

jquery和所有类似dojo的应用程序框架,YUI通过黑客技术支持跨浏览器请求

由于同源策略,您无法向其他域发出ajax请求,因此发出此类请求是一种常用的攻击

演示来描述功能

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);
}
您可以使用一些第三方javascript库

下面是发出跨域ajax请求的代码

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

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

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

您可以使用一些服务将HTML或XML转换为JSON。我知道这样做,但您需要首先在页面中手动定义记录,这样它将只适用于预定义的页面集,而不是用户正在输入的URL。但是可能有XML到JSON的转换器可以转换任何给定的URL。这不难做到

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