я очень-очень новичок в бэкэнде и экспресс-js. Я хотел получить данные из моего API для отдыха, но он отправляет эту ошибку net::ERR_FAILED.
//my api
const express = require("express");
const app = express();
app.get("/", (req, res)=>{
res.send("hello world!!!")
})
const videos = {
"source": "....com",
"url": "...com"
}
app.get("/api/home", (req, res)=>{
res.send(videos)
})
app.listen(3500, ()=>console.info("listening at port 3500..."))<!DOCTYPE html>
<html>
<head>
<title>Hey</title>
</head>
<body>
<button onclick = "init()">hey</button>
<script>
function init(){
const url = "http://localhost:3500/api/home"
fetch(url).then(res=>res.json()).then(result=>{
console.info(result)
})
}
</script>
</body>
</html>Я хочу, чтобы консоль регистрировала данные videos из API, когда я нажимаю кнопку, но это не работает.
это даже говорит:
Доступ к выборке по адресу «http://localhost:3500/» из источника «http://127.0.0.1:5500» заблокирован политикой CORS: в запрошенном файле отсутствует заголовок «Access-Control-Allow-Origin». ресурс. Если непрозрачный ответ соответствует вашим потребностям, установите для режима запроса значение «no-cors», чтобы получить ресурс с отключенным CORS. index.html:12 ПОЛУЧИТЬ http://localhost



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Поскольку ваш порт адреса внешней службы и порт адреса внутренней службы различаются, запускается Общий доступ к ресурсам между источниками. Вот почему вы получили ошибку в консоли браузера.
Чтобы включить CORS, мы можем использовать промежуточное ПО cors.
Или используйте http-proxy-middleware для проксирования вашего API на целевой сервер.
Внешний интерфейс => локальный HTTP-сервер => целевой сервер.
У меня была аналогичная проблема. Проверьте /etc/hosts на вашем компьютере и попробуйте добавить (если не существует) 127.0.0.1 локальный хост
net::ERR_FAILED 200 Случилось со мной в Windows, когда у меня было почти 0 свободного места на диске C:, я не мог загрузить свою страницу, и ошибка появлялась специально для файла *.mp4, который имел размер в десятки мегабайт, и веб-приложение пыталось чтобы предварительно загрузить его.
Проверьте это. Это из официальной документации Express. Вы можете просто включить все источники, пока вы разрабатываете/тестируете свой бэкэнд, а затем, до выпуска рабочей версии, установите там свое доменное имя. Это позволит вашему серверу обрабатывать только трафик из этого источника.