Apache加载php和本地文件错误:“不安全的JavaScript尝试使用URL访问框架...”

时间:2012-08-02 20:48:40

标签: php apache google-chrome

我通过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;

1 个答案:

答案 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 网站可以使用我的用户与银行的网站“交谈”,并做一些我不知道的事情。

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

我希望这很有帮助。