【发布时间】: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/…