2016-12-20 1 views
2

Я использую Falcon CORS, чтобы разрешить доступ к моему веб-сервису только из нескольких доменов. Но это не работает должным образом. Позволь мне объяснить.Соколиное программное обеспечение Falcon CORS не работает должным образом

Посмотрите на мою реализацию:

ALLOWED_ORIGINS = ['*'] 
crossdomain_origin = CORS(allow_origins_list=[ALLOWED_ORIGINS], log_level='DEBUG') 

app = falcon.API(middleware=[RequireJSON(), JSONTranslator(), cors.middleware]) 

Так что, когда я сделать любой запрос после моей службы API, я получаю журнал предупреждение: Aborting response due to origin not allowed. Но затем я получаю правильный ответ от моего API.

Вот официальные документы об этом модуле: https://github.com/lwcolton/falcon-cors

ответ

1

Вашего код не совпадает пример в документации по соколу-Корс в:

import falcon 
from falcon_cors import CORS  
cors = CORS(allow_origins_list=['http://test.com:8080'])  
api = falcon.API(middleware=[cors.middleware]) 
#       ^^^^^^^^^^^^^^^ 

Примечания переменной cors.middleware в настоящее время передается в вызов API. В коде вы создаете crossdomain_origin, но не передаете его в настройку API.

Если это не решит проблему, предоставьте пример рабочего кода, включая классы ресурсов Falcon, который легко проверить и воспроизвести, и я с удовольствием попробую помочь.

редактировать:

Из комментариев ниже, это звучит, как сокол-CORS работает правильно, а проблема может быть origin заголовок был быть исключен из запроса.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

Заголовок происхождения указывает на происхождение запроса доступа межсайтовому или предполетной запрос.

+0

К сожалению, это моя вина, я сделать импорт crossdomain_origin как CORS, так вот и ошибка только в примере кода, но не в моем проекте –

+0

OK пожалуйста, напишите минимальный пример, который воспроизводит проблему, нет другого пути другие, чтобы помочь больше. –

+0

https://codeshare.io/ad1BMG –

Смежные вопросы