Этот вопрос конкретно о структуре чаши.Я уже знаю, что такое заголовок CORS и как читать сообщения об ошибках.Тем не менее, я нахожусь в тупике, заставляя это работать с Chalice.
Мой маршрут определен как:
@app.route('/list-photos', methods=['GET'], cors=True)
, и я получаю к нему доступ из кода браузера, используя
let Http = new XMLHttpRequest();
Http.open("GET", apiUrl + "list-photos?js=" + JSON.stringify(data));
Http.onreadystatechange=(e)=>{
if (Http.readyState == 4 && Http.status == 200) {
...
Почему происходит сбой при следующей ошибке?
Доступ к XMLHttpRequest по адресу «https: // ...» from origin "http://localhost' заблокирован политикой CORS: НетЗаголовок «Access-Control-Allow-Origin» присутствует в запрашиваемом ресурсе.
Я также попытался добавить headers={ 'Access-Control-Allow-Origin': "'*'" }
к ответу, но это не имело никакого значения.
ОБНОВЛЕНИЕ
После еще одного тестирования я заметил, что настройки app.api.binary_types =['*/*']
конфликтуют с cors=True
.Вместо того, чтобы тратить больше времени на это, я решил разделить приложение на две части в качестве обходного пути.Я оставлю вопрос открытым, если кто-нибудь знает правильное решение.