Apache Load php 和本地文件错误:"Unsafe JavaScript attempt to access frame with URL..."



我通过xampp设置了Apache来测试一个网页,以加载一些.php文件来读取.csv文件作为数据源,从而输出条形图。我在Chrome上遇到了这个错误。

不安全的JavaScript尝试访问具有URL的帧file:///C:/xampp/htdocs/search/php/loader/csvFileUploader.php来自具有URL的帧file:///C:/xampp/htdocs/search/stackedBarChart.html.域、协议和端口必须匹配。向上点击-min.js:99i.onliad_callback.i.onload_callback upclick-min.js:99加载

我不认为这是一个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;

?>

您的问题似乎是您试图访问的URL:

file:///C:/xampp/htdocs/search

这不是在当地环境下发展的方式。尝试通过访问

http://localhost/search

我相信它会更好用。详细说明如下。。


发生这种情况是因为一个名为跨域策略的安全标准

您不能(通过JavaScript)调用URL与当前URL地址不同的文件。

例如:我的网站的URL是foobar.com,我正在尝试向barbaz.com发送AJAX请求。

我不能

因为这不是我的领域。我可以尝试将请求发送到barbaz.foobar.com(使用一些JavaScript代码)。

另一个场景将向您展示为什么这是一个"必须具备"的安全标准:

假设我使用cookie登录了我银行的网站。cookie是持久的。

我正在进入一个随机的网站X,该网站向所有已知的银行网站发送AJAX请求。如果我仍然登录我的银行网站,X网站可以使用我的用户与银行网站"对话",并做我不知道的事情。

这是一个很小的例子,说明为什么这一点非常重要。

我希望这会有所帮助。

相关内容

最新更新