Прямо сейчас я столкнулся со странной проблемой CORS.
Вот сообщение об ошибке:
XMLHttpRequest cannot load http://localhost:8666/routeREST/select?q=[...]
Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin
Два сервера:
- localhost: 8666 / routeREST /: это простой сервер Python Bottle.
- localhost: 8080 /: Python simpleHTTPserver, на котором я запускаю приложение Javascript. Это приложение выполняет запросы Ajax на указанном выше сервере.
Есть мысли о том, в чем может быть проблема?
РЕДАКТИРОВАТЬ:
И ... проблема была в порте. Спасибо за ответы :)
Если кто-то также использует сервер бутылки Python, вы можете следовать ответу, приведенному в этом сообщении, чтобы решить проблему CORS: Bottle Py: включение CORS для запросов jQuery AJAX
javascript
python
ajax
cross-domain
cors
Mr_Pouet
источник
источник
Ответы:
Это считается таким же, только если протокол , хост и порт совпадают: одна и та же политика происхождения.
Если вы хотите включить его, вы должны следовать Cross-Origin Resource Sharing (cors) , добавляя заголовки. У Mozilla есть примеры
Вам нужно добавить Access-Control-Allow-Origin в качестве заголовка в свой ответ. Разрешить всем (вам, вероятно, следует НЕэтого делать):
Access-Control-Allow-Origin: *
Если вам необходимо поддерживать несколько источников (например, оба
example.com
иwww.example.com
), установитеAccess-Control-Allow-Origin
в своем ответе значениеOrigin
-header из запроса (после того, как вы убедились, что источник внесен в белый список).Также обратите внимание, что некоторые запросы отправляют предварительный запрос с методом OPTION, поэтому, если вы пишете свой собственный код, вы должны обрабатывать и эти запросы. См. Примеры в Mozilla .
источник
'Access-Control-Allow-Origin: https://example.com'
это НЕ эквивалентно'Access-Control-Allow-Origin: https://www.example.com'
. Если ваш сайт доступен через оба из них, вы должны иметь оба в заголовках ответов.GET
,POST
иHEAD
. Дополнительную информацию см. В статье MDN, указанной в ответе .Номера портов разные.
Запрос считается междоменным, если какая-либо схема, имя хоста или порт не совпадают.
источник