我有一个用于postgres数据库的API,它使用Flask untillet创建,并使用Apache提供服务。在
当我收到多个与OPTIONS请求密切相关的“CORS Error access Control Allow Origin”头文件时,这个API工作得非常完美,直到我尝试使用基于javascript的前端来访问API。在
我尝试了以下修复
[1.在apache中启用cors][1]
<VirtualHost *:80>
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type, Authorization"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
ServerName localhost
WSGIScriptAlias / /home/drmclean/bboxx/git/Smart-Solar-Server/SmartSolarServer.wsgi
WSGIScriptReloading On
<Directory /home/drmclean/bboxx/git/Smart-Solar-Server/>
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type, Authorization"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
Require all granted
Order allow,deny
Allow from all
</Directory>
Alias /docs /home/drmclean/bboxx/git/Smart-Solar-Server/swagger
<Directory /home/drmclean/bboxx/git/Smart-Solar-Server/swagger/>
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type, Authorization"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
Require all granted
Header set Access-Control-Allow-Origin "*"
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
<IfModule mod_rewrite.c>
RewriteEngine on
# Pass Authorization headers to an environment variable
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
2.Enable CORS using the flask-cors extension
^{pr2}$3.使用烧瓶不停地启用CORS
def allow_control_headers(response):
response.headers['Access-Control-Allow-Origin'] = '*'
response.headers['Access-Control-Allow-Credentials'] = 'true'
return response
bp = manager.create_api(REDACTED)
bp.after_request(allow_control_headers)
不用说,到目前为止还没有一个有效。在
有人能解释一下吗
选项3是最接近的,但您所参考的文档仅适用于Flask Entertaint的特定版本,该版本不是最新版本。我建议将Flask's after_this_request processor与Flask untillent'预处理器结合使用
相关问题 更多 >
编程相关推荐