У меня есть модель машинного обучения, я сделал из нее API и установил флеш-сервер, чтобы сделать его доступным как ssuch
server = '192.168.71.53'
port = 5000
app = Flask(__name__)
app.config['CORS_HEADERS'] = 'Content-Type'
cors = CORS(app, resources={r"/get_faces":{"origins":"http://"+server+":"+str(port)}})
@app.route('/call_method', methods=["POST"])
@cross_origin(origin=server, headers=['Content- Type','Authorization'])
def call_model():
return response
if __name__ == "__main__":
app.run(host=server, port=port )
Затем я создал интерфейс в Node JS, который отправляет запрос этому методу через сервер и IP, используя этот
axios.post('http://192.168.71.53:5000/call_method', dataJson)
.then(response => {
# process data } } })
Программа работает на локальном хосте, я столкнулся с проблемой при запуске веб-сайта на ip, Chrome не позволяет мне получить доступ к камере в Node Js, если у меня нет HTTPS-соединения, поэтому я развернул веб-сайт по ссылке, и попытался получить к нему доступ, теперь камера работает, но она не отправляет запрос на мой флеш-сервер, я посмотрел на него и прочитал, что HTTPS не может сделать вызов HTTP, поэтому я настроил флешку на HTTPS с помощью этого
context = ('certificate.pem', 'key.pem')
app.run(host=server, port=port , ssl_context=context)
Теперь, когда я отправляю запрос, Chrome выдает net::ERR_CERT_AUTHORITY_INVALID
ошибку
поэтому я решил опубликовать http-запрос, а не https-запрос, для этого мне пришлось добавить это в мой html-файл
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
это дает мне ошибку net::ERR_SSL_PROTOCOL_ERROR
в Chrome и ошибку code 400, message Bad HTTP/0.9 request type HTTPStatus.BAD_REQUEST -
в колбе
Я пробовал несколько других вещей, но ничего не работает, может кто-нибудь помочь мне с этим? Я боролся с этим уже более 2 недель