【发布时间】:2018-05-13 03:58:53
【问题描述】:
我正在开发 Angular 4 应用程序,其中,我需要在表单提交时上传文件,为此我使用 ng2-file-upload 插件。但是我在上传文件时遇到了问题。我正在创建一个upload.php 文件来完成上传过程。 upload.php 如下:
header("Access-Control-Allow-Origin: http://localhost:4200");
header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
echo json_encode(array('status' => false));
exit;
}
$path = 'uploads/';
if (isset($_FILES['file'])) {
$originalName = $_FILES['file']['name'];
$ext = '.'.pathinfo($originalName, PATHINFO_EXTENSION);
$generatedName = md5($_FILES['file']['tmp_name']).$ext;
$filePath = $path.$generatedName;
if (!is_writable($path)) {
echo json_encode(array(
'status' => false,
'msg' => 'Destination directory not writable.'
));
exit;
}
if (move_uploaded_file($_FILES['file']['tmp_name'], $filePath)) {
echo json_encode(array(
'status' => true,
'originalName' => $originalName,
'generatedName' => $generatedName
));
}
}
else {
echo json_encode(
array('status' => false, 'msg' => 'No file uploaded.')
);
exit;
}
但我收到以下错误:
未能加载http://localhost/uploads/uploads.php:响应 预检请求未通过访问控制检查: 响应中的“Access-Control-Allow-Credentials”标头是“” 当请求的凭据模式为“包含”时,必须为“真”。 因此,Origin 'http://localhost:4200' 不允许访问。这 XMLHttpRequest 发起的请求的凭证模式是 由 withCredentials 属性控制。
如果有任何帮助,请建议我,提前谢谢!
【问题讨论】:
-
您似乎设法设置了
Access-Control-Allow-Origin和Access-Control-Allow-Headers。Access-Control-Allow-Credentials有什么难的?
标签: php angular ng2-file-upload