RequireJS + NodeJS, возвращающий XMLHttpRequest, не может загрузить заголовок "http" No "Access-Control-Allow-Origin"
Я пытаюсь использовать JsSIP, но когда я использую RequireJS, чтобы включить требование на стороне клиента, CHROME возвращает:
XMLHttpRequest cannot load http://localhost/videochat/videonodejs/scripts/jssip. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.
Все в localhost, так что может быть проблемой происхождения? У меня есть номер порта в моем URL, может ли это быть?
2 ответа
Запрос jssip находится на порте 80, приложение на порте 3000. Это не тот же источник, согласно политике того же источника.
Сервер должен указать разрешенные источники в Access-Control-Allow-Origin
заголовок. Часто это значение устанавливается в '*'
таким образом, он захватывает все происхождение клиента, или он установлен в белый список разрешенных происхождений. Это определено в коде сервера и требуется для любого API, который обрабатывает междоменные запросы.
Заглянуть в CORS
Конфигурация для вашего приложения, если добавление Access-Control-Allow-Origin
заголовок не работает. Если это не сработает, вам, возможно, придется изучить запросы перед полетом. Они представляют собой первоначальный запрос, отправляемый на сервер для определения поддержки сервером для предстоящего запроса, и это HTTP-метод OPTIONS
, Таким образом, если вы обрабатываете код сервера, вам нужно будет добавить "OPTIONS" в список разрешенных методов, чтобы вы могли обработать этот предполётный запрос и, таким образом, сообщить браузеру, что он должен продолжить, и отправить реальный запрос на сервер...... Я считаю, что вы можете отключить это поведение в Chrome, запустив с флагом командной строки (который я думаю, --disable-web-security
). Надеюсь, что это может помочь вам.