хорошего дня.
Я пытаюсь загрузить изображение с локального компьютера, используя base64 для обнаружения изображения. И все отлично работает в localhost и почтальоне. Но после развертывания я получил ошибку CROS.
У меня уже есть промежуточное ПО cors в server.js
const express = require("express");
const cors = require("cors");
const bodyParser = require("body-parser");
const app = express();
app.use(cors());
app.use(bodyParser.json({ limit: "10000kb", extended: true }));
app.use(bodyParser.urlencoded({ limit: "10000kb", extended: true }));
Промежуточное программное обеспечение cors отлично работает при извлечении изображения с URL, Но когда я попытался загрузить изображение с локального с помощью base64 , консоль показала:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Вот решение, которое я пробовал:
- cors -where
App.js
const proxyUrl = 'https://cors-anywhere.herokuapp.com/';
fetch(proxyUrl + API_CALL.IMAGE_URL, {
method: 'post',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
inputLink: inputLink,
inputMethod: inputMethod
}),
credentials: 'include'
})
Затем отображается 413 payload too large
.
Поскольку при тестировании в localhost и почтальоне нет ошибок, я обнаружил, что в некоторых статьях сказано: это все еще может быть ошибка cors.
CORS preflight
сервер. js
const corsOptions = {
origin: 'https://front-end-url/',
methods: 'GET, POST, PUT',
credentials: true,
allowedHeaders: 'Content-Type,Authorization',
exposedHeaders: 'Content-Range,X-Content- Range'
};
app.options('/imageUrl', cors(corsOptions));
Показывает ошибку:
CORS policy: Response to preflight request doesn't pass access control check:
The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*'
when the request's credentials mode is 'include'
После удаления
credentials: 'include'
снова отображается
413 payload too large
.
Я так растерялся ... Кто-нибудь знает, как это исправить? Спасибо.