#javascript #node.js #webpack
#javascript #node.js #webpack
Вопрос:
Я получаю эту проблему :
Response { type: "cors", url: "http://localhost:3000/api/marks",
redirected: false,
status: 200,
ok: true,
statusText: "OK",
headers: Headers,
body: ReadableStream,
bodyUsed: true }
MarkService.js:5
Cross-Origin Request Blocked:
The Same Origin Policy disallows reading the remote resource at
http://localhost:3000/api/marks. (Reason: CORS request did not succeed).
Вот на что он указывает
class MarkService {
constructor() {
this.URI = `localhost:3000/api/marks`;
}
async getMarks() {
const response = await fetch(this.URI);
const marks = await response.json();
return marks;
}
}
export default MarkService;
Я пытаюсь создать приложение с выражением в бэкэнде и веб-пакетом для интерфейса.
У меня есть Rest API в серверной части, и я не могу использовать его во внешнем интерфейсе.
Я использую Ubuntu с Mozilla Firefox 66.0.2 и Nodejs 11.13.0
Когда я использую консоль, она говорит, что проблема в ней
Комментарии:
1. ошибка вставки завершения
2. Что происходит на вкладке Сеть в инструментах разработки?
3. Попробуйте веб-сайт Google вместо локального хоста один раз.
4. У меня нет никаких попыток подключиться к localhost:3000/ api / marks (где у меня есть Rest API)
5. Я изменил URL на www.google.com и я обнаружил, что он пытается получить localhost:8080/www.google.com
Ответ №1:
Как я вижу для этой ошибки
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:3000/api/marks. (Reason: CORS request did not succeed)
в нем говорится, что произошла ошибка CORS, и это связано с тем, что интерфейс и серверная часть размещены в разных доменах или портах, если на локальном хосте, давайте объясним это немного подробнее.
CORS, что означает совместное использование ресурсов разных источников, — это политика безопасности, которая применяется только к Javascript (браузерам), которая блокирует доступ веб-сайтов к другим веб-сайтам с использованием AJAX, если они явно не одобрены с помощью заголовков.
Чтобы решить эту проблему, вам необходимо передать определенные заголовки в ответе со стороны сервера, который утверждает CORS для запрашивающего домена, заголовков и методов
Вы можете прочитать эту статью для получения глубоких знаний о CORS Или вы можете проверить эту ссылку, чтобы узнать, как решить проблему, с которой вы столкнулись
И есть этот пакет NPM для nodejs, который поможет вам с CORS