【问题标题】:Angular 2 form data to Express CORS issueAngular 2 表单数据到 Express CORS 问题
【发布时间】:2017-07-23 10:21:58
【问题描述】:

我正在尝试将一些文件上传到 Express 服务器,服务器正在使用这样的 cors() 模块

app.use(cors());

这是上传文件的 Angular 2 代码

let formData:FormData = new FormData();
    for(let i = 0; i < files.length; i++) {
        let file = files[i];
        formData.append(`file`+(i+1), file, file.name);
    }

    let token = localStorage.getItem('supersecrettoken');
    let headers = new Headers();
    headers.append("Content-Type", 'multipart/form-data');
    headers.append("auth", token);

    return this.http.post(`${Constants.SERVER_IP}/imports`, formData, {headers: headers})
        .map(response => {
            return response.json();
        })
        .catch(this.logger.handleError).share();

现在这会返回以下错误

 No 'Access-Control-Allow-Origin' header is present on the requested resource

如果我将 multipart/form-data 更改为 application/json 它将起作用。

那我怎样才能将多个文件上传到服务器呢?

问候!

【问题讨论】:

  • 您在服务器中设置了哪些 CORS 标头?
  • 我试过使用 cors 模块(它适用于应用程序的其余部分,但不接受 multipart/form-data)和这些 Access-Control-Allow-Origin", " *" "Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"
  • 你能得到响应头吗?
  • 抱歉我的无知,但我该如何检查呢?
  • 您在使用网络开发工具吗? chrome 开发者工具有网络选项卡,它为您提供发送/接收的请求和响应标头。 developers.google.com/web/tools/chrome-devtools/…

标签: angular express cors


【解决方案1】:

您现在可能已经解决了这个问题,但如果没有,只需将其添加到标题中:

headers.append('Access-Control-Allow-Origin', '*');

“*”表示任何域。您可能希望将其限制为特定域。

【讨论】:

    猜你喜欢
    • 2017-06-20
    • 2018-06-12
    • 2014-07-08
    • 2021-08-22
    • 2018-03-27
    • 2017-09-06
    • 1970-01-01
    • 2018-12-19
    • 1970-01-01
    相关资源
    最近更新 更多