访问控制不允许php源代码允许源代码

访问控制不允许php源代码允许源代码,php,ftp,cross-domain,Php,Ftp,Cross Domain,我的ftp/php跨域请求有问题。通过我的浏览器,我可以通过如下方式传递参数来访问内容:。但是在JavaScript中,相同的链接给了我Originhttp://localhost:8000 访问控制允许原点不允许 我已经试过了 标题(“访问控制允许原点:”) 在下面的脚本中没有运气。我的ftp仅访问服务器中有一个get.php文件,代码如下: <? if(isset($_GET["file"])) { $filepath = "/.../models/".$_GET["file

我的ftp/php跨域请求有问题。通过我的浏览器,我可以通过如下方式传递参数来访问内容:。但是在JavaScript中,相同的链接给了我Origin
http://localhost:8000 访问控制允许原点不允许
我已经试过了

标题(“访问控制允许原点:”)

在下面的脚本中没有运气。我的ftp仅访问服务器中有一个get.php文件,代码如下:

<?

if(isset($_GET["file"])) {
    $filepath = "/.../models/".$_GET["file"];
    //echo "path: " , $filepath;
    $filetype = pathinfo($filepath);
    //echo $filetype['extension'], "\n";
    header('Access-Control-Allow-Origin: *');
    header('Content-Type: '.$filetype['extension']);
    // //header('Content-Type: application/octet-stream');
    header('Content-Length: ' . filesize($filepath));
    ob_clean();

    readfile($filepath);
}//if

else {
   echo '<img src="http://stupidbadmemes.files.wordpress.com/2013/02/no-you-may-not.jpg"></img>';
}


?>


我在这个脚本中做错了什么?

这是客户端的“问题”。这是一个由浏览器实现的安全问题,它禁止从一个域到另一个域的请求。有很多方法可以解决这个问题,特别是JSONP。

如果您要来回发送GET数据,我会尝试打开您的访问控制。同源规则可能非常挑剔

Allow Origin管理哪些服务器可以发出请求

Max Age实现了一个过期

允许方法允许请求者向您发送GET/POST/etc.数据

这里有一个例子:

header('Access-Control-Allow-Origin: *');
header('Access-Control-Max-Age: 3628800');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');
旁注

当在生产中*增加了一些风险时,应将“允许来源”设置为您的特定请求域

请仔细清理您的输入,像这样访问文件是一件危险的事情。实际上,您可以打开人们来读取工作目录中的任何文件


$filepath=“/…/models/”$\u GET[“file”]

发送跨源标题和响应有点毫无意义。这就像通过将银行金库写在存储在金库中的便条上来授予访问银行金库的权限。无法进入保险库,因为你没有写着你可以进去的便条,也无法获取便条,因为它被锁在里面。我理解这些风险,但现在我只需要它工作。。不管怎样,我试着将它添加到脚本中,但它仍然无法在您的系统上运行任何文件,事实上,不只是当前目录中的文件。考虑<代码>文件=…/…/…/ETC/PasWD < /代码>!我想你的答案开始起作用了。。。但是我没有改变任何事情。。。我会继续测试一点,并将你的答案标记为正确的答案,我之前就有这个工作,虽然我没有写其他脚本。问题是我不小心删除了它,现在我正试图重写它。我需要返回的内容包括图像和XML。我可以使用jsonP获取xml内容吗?