【发布时间】:2012-09-01 11:32:16
【问题描述】:
以下代码在 Safari 上运行良好。
在 Chrome 上,由于以下原因而失败:
"XMLHttpRequest cannot load file:///Users/jem/Sites/AA/data/articles.csv. Origin null is not allowed by Access-Control-Allow-Origin."
这是什么意思?如何使用同步调用正确读取此文件?
function(file) {
var content;
$.ajax({
url : file,
success : function (data) {
content = data.split(/\r\n|\n/);
},
async: false
});
return content;
}
【问题讨论】:
-
令人恐惧的是 Safari 会让你这样做......想想像
file:///proc/cpuinfo这样的东西,它会让恶意网站检测架构和其他信息,让它尝试更精确的感染。虽然无法通过这种方式进行修改,但可以通过/proc访问很多 数据。大量有价值的、可挖掘的、可破解的数据。/proc中的几乎所有数据都可能被恶意使用。 -
@Linuxios Safari 可能会执行something like Firefox 并将
file:页面的来源限制在同一目录或子目录中。因此,如果您在“下载”文件夹中打开一个新下载的 HTML 文件,它可能会在该目录中四处寻找以读取文件,但它可能不进入文件系统up树到达/proc。 (当然,这并不是说让一个奇怪的 HTML 页面读取您的 Downloads 文件夹中的任何文件都是一件好事!) -
@apsillers:这让我感觉好多了,但我认为这是一个关于互联网服务网页的问题。因为
/proc塞满了敏感数据。
标签: javascript jquery synchronous