1

除了 YQL 之外,有没有什么方法可以在不修改服务器端代码的情况下从其他域获取 ajax 的响应和数据?

YQL 对免费用户有限制(每小时 1000 次呼叫),但大多数人说实际上更少。

4

3 回答 3

3

如果您所说的“不修改服务器端代码”不是修改数据源的服务器,那么您可以拥有自己的代理服务器(基本上是自己制作YQL服务器)来读取远程数据。这是可能的,因为服务器端没有绑定到同源策略。

因此,您可以 AJAX 您的服务器,然后让您的服务器使用某种形式的wget,curl或读取远程服务器fopen,并返回检索到的内容:

Remote server <- fopen, curl or wget -> your server <- AJAX -> browser
于 2012-07-01T00:05:35.280 回答
1

您可以使用 iframe 接收器模式。这是一项古老的技术。请参阅Danny Thorpe 在 MSDN 上的浏览​​器中的安全跨域通信。您不必使用 JSONP 但仍然可以进行跨域调用

于 2012-07-01T00:36:35.077 回答
1

您可以使用 HTML 5 功能 postMessage 进行跨域调用。同样,并非所有浏览器都支持它。看下面的链接实现: Cross domain call using postMessage

于 2012-07-01T00:43:22.500 回答