我有一个安全的webapp,它有一个基于烧瓶的网络和芹菜容器,可以通过https进行通信。
Web容器从客户端接收带有https协议的POST fetch,启动后台任务,并返回包含任务状态url的响应:
jsonify({}), 202, {'Location': url_for('create_zip_file_taskstatus', task_id=task.id)}客户端等待响应,然后获取任务状态的url:
let create_zipfile_status_url = response.headers.get('location');没有协议的位置本身的相对url是很好的:
url_for('create_zip_file_taskstatus', task_id=task.id): /status/c4bc9e2c-6ecd-4bf3-bc25-782f8e4e66c6但是完整的url有一个http协议,它会导致CORS错误。
create_zipfile_status_url: http://localhost/status/7aba0d27-712d-4623-a37e-5262b53fe212如何将location url设置为协议https (而不是http)?
发布于 2020-02-18 06:35:19
我找到了解决方案here。需要添加_external=True, _scheme='https',即从
return jsonify({}), 202, {'Location': url_for('create_zip_file_taskstatus', task_id=task.id)}至
return jsonify({}), 202, {'Location': url_for('create_zip_file_taskstatus', task_id=task.id, _external=True, _scheme='https')}https://stackoverflow.com/questions/60274929
复制相似问题