我通过xampp设置Apache来测试一个网页,加载一些.php文件来读取.csv文件作为数据源输出条形图。我在Chrome上遇到此错误。
不安全的JavaScript尝试使用URL文件访问框架:/// C:/xampp/htdocs/search/php/loader/csvFileUploader.php来自带有URL文件的框架:/// C:/ xampp / htdocs / search / stackedBarChart.html。域,协议和端口必须匹配。 upclick-min.js:99 i.onload_callback.i.onload_callback upclick-min.js:99 的onload
我认为这不是像许多其他帖子所建议的iframe问题。我也通过firefox进行了测试,它不仅仅是读取php而且还没有从本地目录加载.csv文件。
有什么建议吗?
<script>
var uploaderCSV = document.getElementById('uploaderCSV');
upclick({
element : uploaderCSV,
action : 'php/loader/csvFileUploader.php',
onstart : function(filename) {
console.log(" -- Start upload: <" + filename + "> Here");
},
oncomplete : function(response_data) {
alert(response_data);
console.log(" -- CSV file to load: ", response_data);
var n = response_data.split("|");
if (n.length > 1) {
console.log(" >> csv file loaded at[ ", n[1], " ]");
loadDayLightFactor("php/loadCSV.php", "../" + n[1]);
}
}
});
</script>
这是php文件
<?php
// using upload at click from http://code.google.com/p/upload-at-click/
// FileData is the name for the input file
$file_result = "";
$file = $_FILES['Filedata'];
$allowedExtensions = array("csv", "txt");
$extension = end(explode(".", $file["name"]));
echo "123".$file;
&GT;
答案 0 :(得分:0)
您的问题似乎是您要覆盖的网址:
file:///C:/xampp/htdocs/search
这不是在当地环境中发展的方式。 尝试通过
访问它 http://localhost/search
我相信它会更好用。详细解释如下..
由于名为跨域政策
的安全标准,这种情况正在发生您无法拨打(通过JavaScript)具有与当前网址不同的网址的文件。
例如: 我的网站的网址是 foobar.com ,我正在尝试向 barbaz.com 发送一个AJAX请求。
我不能!
因为它不是我的域名。我可以尝试向 barbaz.foobar.com 发送请求(使用一些JavaScript代码)。
另一个场景将向您展示为什么这是“必须拥有”的安全标准:
让我们说我使用cookie登录了我银行的网站。 cookie是持久的。
我正在进入一个随机网站 X ,向所有已知的银行网站发送AJAX请求。如果我仍然登录我银行的网站, X 网站可以使用我的用户与银行的网站“交谈”,并做一些我不知道的事情。
这是一个很小的例子,说明这一点非常重要。
我希望这很有帮助。