![](/img/trans.png)
[英]XMLHttpRequest is not allowed by Access-Control-Allow-Origin
[英]php Origin is not allowed by Access-Control-Allow-Origin
我的ftp / php跨域请求有问题。 通过我的浏览器,我可以通过传递这样的参数来访问内容: http : //xxx.org/models/get.php?file=default_app/y_car_new/stock.jpg 。 但是使用JavaScript时,同一链接给了我我已经尝试过的http://localhost:8000 is not allowed by Access-Control-Allow-Origin
Origin http://localhost:8000 is not allowed by Access-Control-Allow-Origin
标头(“访问控制允许来源:*”)
在以下脚本上没有运气。 我的仅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>';
}
?>
我在此脚本中做错了什么?
如果您要来回发送GET数据,我会尝试进一步打开Access Control。 相同的原产地规则可能非常挑剔。
Allow-Origin管理哪些服务器可以发出请求。
Max-Age实现到期。
Allow-Methods允许请求者发送GET / POST / etc。 数据给你。
这是一个例子:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Max-Age: 3628800');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');
旁注
在生产中*会增加一些风险,应将Allow-Origin设置为您的特定请求域。
请仔细检查您的输入内容,这样访问文件是一件冒险的事情。 本质上,您是在向人们开放以读取您的工作目录中的任何文件。
$filepath = "/.../models/".$_GET["file"];
这是客户端的“问题”。 浏览器实现了安全性问题,以禁止从一个域到另一个域的请求。 有很多解决方法,特别是JSONP。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.