您可以使用第三方工具进行隧道传输,例如YQL http://developer.yahoo.com/yql/.
雅虎!查询语言是一种富有表现力的类似 SQL 的语言,可让您跨 Web 服务查询、过滤和连接数据。
YQL 将充当中间人,将来自您的站点的调用连接到您的 API。网络流量将如下所示:
Client -> YQL -> API Server
这对我来说看起来不错。
YQL 已经存在很长时间了。他们的免费配额 http://developer.yahoo.com/yql/guide/usage_info_limits.html是有利的,并且正常运行时间也相当不错:
此外,配额不断增加,Yahoo!提供了一定的保证,如果他们决定关闭该服务,他们将使其运行相当长的一段时间,以便您有时间进行迁移。目前有几个项目使用 YQL(我知道其中一项服务 -TipTheWb.org http://tiptheweb.org/)
此外,我建议您检测给定浏览器是否支持 CORS,并仅在必要时回退到 YQL:
function browserSupportsCors() {
if ("withCredentials" in new XMLHttpRequest())
return true; // most browsers
else if (typeof XDomainRequest == "object")
return true; // IE8+
else // Opera currently here, but they'll get better pretty soon :)
return false;
}
或者如果你使用 jQuery,它有一个简洁的support http://api.jquery.com/jQuery.support/ method.
if (!$.support.cors) {
// YQL fallback
}
还有很棒的调整 YQL 性能的技巧 http://www.slideshare.net/cheilmann/using-yql-sensibly-yuiconf-2010.
感谢您对Opera用户的关心!