Ситуация немного сложная.Я использовал http-сервер для размещения своего локального кода на localhost: 8080.Затем я использовал Чарльза для сопоставления онлайнового URL (example.online.com/index.html) с моим локальным URL-адресом (localhost: 8080 / index.html), чтобы делиться файлами cookie.Затем я запустил сервер локального узла как фиктивный сервер на localhost: 9963. На фиктивном сервере реализованы настройки CORS.Я сделал запрос к localhost: 9963 / api / list использует Fetch Api в моем локальном коде, поэтому на запрос были даны ложные данные cors.Иногда я не хотел, чтобы фиктивный сервер отвечал на фиктивные данные.Вместо этого фиктивный сервер перенаправил запрос (localhost: 9963 / api / list) на онлайн-API (example.online.com/api/list) с 307. Проблема в том, что, когда браузер следовал за перенаправлением, проблема CORSпроизошло.Я путаюсь с тем, почему CORS произошел, когда перенаправленный URL http://example.online.com/api/list находится в том же домене, что и http://example.online.com/index.html.
, ошибка: URL-адрес источника заменен URL-адресом примера):
Доступ к выборке в 'http://example.online.com/api/list' (перенаправлен из' http://localhost:9963/api/list') из источника 'null' был заблокирован политикой CORS: Ответ на запрос предпечатной проверки не проходит проверку контроля доступа:В запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Если непрозрачный ответ удовлетворяет вашим потребностям, установите режим запроса «no-cors», чтобы получить ресурс с отключенным CORS.
код выборки:
const url = `http://localhost:9963/api/list`;
const method = 'POST';
const headers = {
"Content-Type": `application/json`,
"Accept": `application/json`
};
const body = JSON.stringify(req);
const credentials = 'include';
const mode = 'cors';
return fetch(url, {
method,
headers,
body,
credentials,
mode
})
код перенаправления (с использованием koa2):
const r_url = 'http://example.online.com/api/list';
ctx.status = 307;
ctx.redirect(r_url);