角度2文件上传401未授权(CORS)

时间:2017-03-28 12:34:56

标签: angular typescript file-upload cors apache2

我收到错误" 401 Unauthorized"在Chrome和Firefox中, 将带有角度2 CLI的文件上传到apache2-server时。 服务器的后端是PHP。 我已尝试使用三个不同的节点模块,所有模块都表现相同。 我已经在OPTIONS-preflight上得到了错误,

  

" XMLHttpRequest无法加载(uploadurl)预检的响应包含无效的HTTP状态代码401"。

如果我从其他来源请求(例如" localhost:4200"),则只会发生此错误。 但是当在apache服务器上执行这个项目时,上传工作正常。

所以在localhost上: 不同的是,上传前的所有请求都在请求标头中有cookie。 但不是上传请求。 这是一张图片: headers on the upload-request

到目前为止,我已尝试过三个节点模块:

  • NG2-文件上传
  • angular2-HTTP-文件上传
  • NG2的上传

" withCredentials"上传者本身(例如,来自Valor Software ng-2-file-upload的ng2-file-upload)设置为true。 我也尝试过设置标题X-Requested-With: 'XMLHttpRequest'。 我已经尝试设置Authorization: Basic - 标题....仍然是同样的问题。 当我自己OnBeforeFileUpload设置Cookie: - 标题时,我当然会收到一条错误消息

  

"拒绝设置不安全的标题Cookie"

如果有人知道如何解决这个问题,那会很酷。 我只是到处寻找答案,但没有任何帮助。

修改 Theese标题也在php后端设置:

    header("Access-Control-Allow-Origin: http://localhost:4200");
    header("Access-Control-Allow-Credentials: true");
    header("Access-Control-Allow-Headers: *");
    header('Access-Control-Allow-Methods: GET, POST, OPTIONS');

仍然有错误。

1 个答案:

答案 0 :(得分:0)

似乎是服务器站点错误。

你的php文件中有以下标题吗?

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
header("Access-Control-Allow-Headers: X-Requested-With");
相关问题