小编mst*_*mst的帖子

CORS 问题,如果 "Content-type": "multipart/form-data"

我有两个域(客户端的example.com,rest API的api.example.com),考虑到CORS策略,我从客户端向API请求。预检请求按预期工作,除文件上传外,其他所有请求(GET/POST/PUT/DELTE)都运行良好,这意味着 Content-type 是否为“multipart/form-data”。

我在 Chrome 控制台中收到以下错误:

从源“ https://www.example.com ”访问“ https://api.example.com/video/upload ”处的 XMLHttpRequest已被 CORS 策略阻止:没有“Access-Control-Allow-Origin”标头存在于请求的资源上。

这是我的客户端(vuejs)来源:

var config = {
    headers: { "Content-Type": "multipart/form-data" },
    onUploadProgress(e) {
      if (e.lengthComputable) {
        self.percentage = Math.round(e.loaded / e.total * 100) + "%";
      }
    }
  };

  axios
    .post(apiUrl + `/video/upload`, formData, config)
    .then(response => {
      this.successes.push(
        response.data.videoName + " uploaded."
      );
    })
    .catch(e => {
      this.errors.push(message);
    });
},
Run Code Online (Sandbox Code Playgroud)

以及 CORS 的 nginx 配置:

server {
listen 443 ssl default_server http2;
listen [::]:443 ssl default_server …
Run Code Online (Sandbox Code Playgroud)

file-upload multipartform-data cors nginx-config

9
推荐指数
2
解决办法
1万
查看次数