使用纯JS和html跨域ajax到外域

时间:2011-11-02 06:07:38

标签: javascript html ajax cross-domain same-origin-policy

首先 - 我读过很多类似问题的青少年和其他Google搜索网页/博客。

有很多方法可以让跨域通信工作,但当我无法修改我想要调用的页面(例如http://www.imdbapi.com/?t=True%20Grit&y=1969)时,有什么东西可以让我这样做吗?

http://www.imdbapi.com/?t=True%20Grit&y=1969中没有任何修改,我可以使用postMessage solution(这种方法对我来说最好吗)?看起来它没有辅助页面(其中一种方法)。

我不想使用任何第三方库/ php脚本/等 - 只是纯粹的HTML和javascript - 是否可以调用这样一个“不可变”的页面? ...并在我自己的页面上解析它(简单的iframe是不够的)

请帮助 - 我的大量研究让我一无所有

2 个答案:

答案 0 :(得分:0)

从理论上讲,你需要一个代理iframe,它具有ajax页面所在的相同域。

  1. 从父页面到iframe页面的postMessage。
  2. 然后是来自iframe的ajax。
  3. 如果您无权访问父页面的源代码,则可以通过书签等方式注入脚本。注入还可以包括jquery和postMessage插件以及创建iframe的脚本。

    我正在使用这个postMessage插件,它适用于最新的IE / FF / Chrome / Safari和HTML5。它声称有旧版浏览器的URL #ing后备,但我还没有测试过。

    http://benalman.com/projects/jquery-postmessage-plugin/

答案 1 :(得分:0)

好的,这就是事情。这样做是从同一域请求数据。子域间和子域域请求不是“相同的域”,只是为了使事情清楚。由于该页面是“同域”,因此没有帮助者是可能的。

AJAX不允许跨域请求。据我所知,有一些方法允许跨域请求(如帮助页面)

目前,jQuery支持jsonp,您可以这样做:

http://api.jquery.com/jQuery.getJSON/

在页面中查找:“从Flickr JSONP API加载四张最新的猫图片。”

或参见参考资料:

http://en.wikipedia.org/wiki/JSONP