Hei*_*mus 2 javascript php ajax .htaccess cgi
我在一个名为的服务器上有一个JavaScript,kopernikus.science.net
它想要访问另一个名为的服务器上的文件galileo.science.net
.这是我想到的一个玩具示例:
code residing on http://kopernikus.science.net/makecalendar.js :
var request = new XMLHttpRequest();
request.open("GET","galileo.science.net/calendar", false);
request.send(null);
document.getElementById("calendar").innerHTML =
"<div>" + request.responseText.split('\n')[0] + "</div>";
Run Code Online (Sandbox Code Playgroud)
遗憾的是,由于现代Web浏览器的"相同原始策略",禁止脚本访问不同域上的数据.
当然,我的问题是:
我怎么能访问远程文件?
允许JavaScript之外的解决方案,例如镜像相关文件或调整
.htaccess
.我有什么选择?哪个需要Web服务器上的最少权限?
有问题的文件是vcalendar格式的日历,它会定期更改.我在共享主机上,没有sysadmin权限,但我可以运行PHP和CGI脚本,并可以更改.htaccess
文件的某些部分.
一些选择:
XDomainRequest
而不是XMLHttpRequest
(其他浏览器,如Chrome和Firefox,完全透明地处理CORS XMLHttpRequest
).document.domain
来指定这两个页面(如果它们实际上是同一science.net
域的子域)位于同一个源中.这在浏览器中运行良好,但它的缺点是您首先必须将目标文档加载到窗口(可能是隐藏的iframe)才能访问它,因为目标文档也必须设置document.domain
(以显示它想要与你合作).这些大致按照我使用它们的顺序列出.例如,如果您控制服务器并且知道您的客户将使用最新的浏览器,请使用CORS; 如果没有,请查看JSONP(虽然从下面的评论中,你可能不能); 如果不是这些,或许document.domain
是答案; 等等,在列表中工作到最后的选择(代理).
归档时间: |
|
查看次数: |
1237 次 |
最近记录: |