firefox не разрешает запрос CORS - PullRequest
0 голосов
/ 15 марта 2020

vuejs работает внутри docker контейнера, обслуживаемого:

CMD [ "http-server", "dist" ]

при использовании ax ios внутри Vue. js mount () для выполнения запроса GET к flask api показывает «заблокировано» на вкладке сети, доступ к другим REST-API работает нормально.

тестирование с помощью curl (localhost: 6000 - сервер flask):
- curl запущен с моего реального хоста и подключения к контейнеру

curl -H "Origin: http://localhost:5000"   
-H "Access-Control-Request-Method: GET"   -H "Access-Control-Request-Headers: X-Requested With"   
-X OPTIONS --verbose  http://localhost:6000/todo/api/v1.0/wheel/40  

*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 6000 (#0)
> OPTIONS /todo/api/v1.0/wheel/40 HTTP/1.1
> Host: localhost:6000
> User-Agent: curl/7.58.0
> Accept: */*
> Origin: http://localhost:5000
> Access-Control-Request-Method: GET
> Access-Control-Request-Headers: X-Requested-With
> 
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Content-Type: text/html; charset=utf-8
< Allow: OPTIONS, GET, HEAD
< Access-Control-Allow-Origin: http://localhost:5000
< Access-Control-Allow-Headers: X-Requested-With
< Access-Control-Allow-Methods: DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT
< Vary: Origin
< Content-Length: 0
< Server: Werkzeug/1.0.0 Python/3.8.2
< Date: Sun, 15 Mar 2020 15:43:44 GMT
< 
* Closing connection 0

из того, что я читал до сих пор, например, здесь: 1 , для неавторизованного запроса GET заголовки выглядят нормально.

Этот получает реальные данные:

curl -H "Origin: http://l:5000"   -H "Access-Control-Request-Method: GET"   -H "Access-Control-Request-Headers: X-Requested-With"  -v http://localhost:6000/todo/api/v1.0/wheel/40 
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 6000 (#0)
> GET /todo/api/v1.0/wheel/40 HTTP/1.1
> Host: localhost:6000
> User-Agent: curl/7.58.0
> Accept: */*
> Origin: http://l:5000
> Access-Control-Request-Method: GET
> Access-Control-Request-Headers: X-Requested-With
> 
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Content-Type: application/json
< Content-Length: 39
< Access-Control-Allow-Origin: http://l:5000
< Vary: Origin
< Server: Werkzeug/1.0.0 Python/3.8.2
< Date: Sun, 15 Mar 2020 15:56:43 GMT
< 
{"result":{"model 1":0,"model 2":150}}
* Closing connection 0

Манипулирование -H «Происхождение ...» на это:

-H "Origin: http://l:5000" 

также показывает нормальный ответ. Разве это не хороший тест?

Ответы [ 2 ]

0 голосов
/ 19 марта 2020

В файле __init__.py вашего приложения добавьте эти строки, и вы будете в порядке с go.

$ pip install flask-cors
from flask_cors import CORS

app = Flask(__name__)
CORS(app)

Подробнее о CORS здесь - MDN CORS

0 голосов
/ 19 марта 2020

Как оказалось, mozilla разрешает определенные порты для определенных протоколов, как показано здесь:
https://developer.mozilla.org/en-US/docs/Mozilla/Mozilla_Port_Blocking

6000 - порт "x11", и в этом списке - как порт As для х11 и не будет использоваться для хр. Таким образом, каждый порт, не входящий в этот список, должен выполнить свою задачу.
причина:
Cert выпустил примечание об уязвимости VU # 476267 для атаки с использованием сценариев "кросс-протокол", известной как HTML атака по протоколу формы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...