从不同域加载页面的最快方法

时间:2012-03-16 08:58:13

标签: jquery .net ajax cross-domain

我想做的很简单:

我想异步加载一个.aspx页面(比方说,www.crossdomain.com/PageToAdd.aspx)到我的实际页面(比方说,www.actualdomain.com/Index.aspx)。两个页面(和域名)都在我的控制之下,所以我也可以制作任何类型的东西。

我该怎么办?我尝试了什么:

    来自jQuery的
  1. .load(),但它不适用于跨域;
  2. 来自jQuery的
  3. .ajax(),使用JSONP,但似乎很无聊将整个PageToAdd.aspx序列化为JSON(事实上,我不能把整个html页面代码放在一个节点中,因为页面大小呢太高了,它会被打破);
  4. 那么,我可以尝试做什么?

    请注意!出于某些原因,我需要“避免”iFrame。

3 个答案:

答案 0 :(得分:1)

你可以.load(“actualdomain / parseforme.aspx?url = remotedoomain / please.aspx”);我认为?只需要在应用程序中编写一个parseforme.aspx来获取域中的远程文件。

答案 1 :(得分:1)

您必须实施代理才能放入您的域或使用iframe。既然你想避免iframe你依赖代理;那么您将需要.load()您的代理,它将调用远程URL并返回该页面的HTML。

请注意,如果远程页面对自己的Web服务进行了一些AJAX调用,那么将针对同源策略阻止这些AJAX调用。实施iframe将更安全,更快捷。

答案 2 :(得分:1)

由于您控制了两个域,因此可以向其中一个域添加CORS支持。这将允许通过XMLHttpRequest加载内容。您可以在此处了解有关配置CORS的更多信息:

http://www.html5rocks.com/en/tutorials/cors/