所以我使用了一个名为 vue-cropper.js 的 npm 包来裁剪图像并将裁剪后的图像上传到远程服务器。但是,裁剪图像的上传部分无法正常工作,因为我得到的只是 CORS 错误。但问题是,当我上传图像而不裁剪它时,它可以工作并且没有错误。我不明白我做错了什么。
我已经多次检查cropper.js 文档,他们告诉你要做的就是创建一个blob并将其附加到表单数据,然后发布。再说一次,这就是我正在做的事情。
这是我的裁剪器组件模板。
<vue-cropper
v-show="imageSrc"
class="vue-cropper"
ref="cropper"
:guides="true"
:view-mode="1"
drag-mode="crop"
:background="true"
:rotatable="true"
:aspect-ratio="1"
:src="imageSrc"
alt="Image"
></vue-cropper>
这是我的裁剪和上传代码。
crop() {
this.$refs.cropper
.getCroppedCanvas({
width: 200,
height: 200
})
.toBlob(blob => {
const formData = new FormData();
formData.append("photo", blob, 'avatar');
this.uploadImage(formData);
});
},
rotate() {
this.$refs.cropper.rotate(90);
},
uploadImage(formData) {
const token = getCookie("ifragasatt_cookie");
const url = "https://vem-user.fjardestatsmakten.se/userProfilePic";
const headers = {
"Content-Type": "multipart/form-data",
"Access-Control-Allow-Origin": "*",
"ifr-jwt-token": token
};
axios.post(url, formData, { headers });
}
}
我希望从端点得到“ok”作为响应。但我得到:
POST https://vem-user.fjardestatsmakten.se/userProfilePic 502
my-profile:1 Access to XMLHttpRequest at 'https://vem-user.fjardestatsmakten.se/userProfilePic'
from origin 'http://localhost:8080' has been blocked by CORS policy:
No 'Access-Control-Allow-Origin' header is present on the requested resource.