GitHub Pages部署含Python API的CRUD网站失败,请求技术支援
解决GitHub Pages(HTTPS)与PythonAnywhere(HTTP)的API访问问题
核心问题
GitHub Pages是HTTPS协议,而你的PythonAnywhere API用的是HTTP,浏览器的混合内容安全策略会直接阻止HTTPS页面加载HTTP资源,这就是线上环境无法获取数据的根本原因。
解决步骤
给PythonAnywhere站点启用HTTPS
PythonAnywhere免费版也支持HTTPS,操作很简单:- 登录PythonAnywhere后台,切换到Web标签页
- 找到你的目标站点,点击「Secure your site」按钮
- 按照提示启用Let's Encrypt免费证书,等待几分钟即可生效
- 之后你的API地址就可以用
https://你的用户名.pythonanywhere.com/xxx访问了
修改前端API请求地址
打开Vue.js相关代码,把所有后端请求的URL从http://替换成https://,比如原来的http://xxx.pythonanywhere.com/api/productos改成https://xxx.pythonanywhere.com/api/productos,确保用完整的HTTPS路径。处理跨域问题(若启用HTTPS后仍报错)
后端需要配置CORS允许GitHub Pages的域名访问:
如果你用的是Flask,安装flask-cors库:pip install flask-cors然后在Flask应用中添加配置:
from flask_cors import CORS app = Flask(__name__) # 生产环境建议指定允许的域名,更安全 CORS(app, origins="https://gasparb123.github.io")部署修改后的后端代码到PythonAnywhere,重启你的Web应用。
验证测试
把修改后的前端代码推送到GitHub,等待GitHub Pages更新完成后,打开线上页面,用浏览器开发者工具(F12)查看控制台和网络请求,确认产品数据能正常加载。
内容的提问来源于stack exchange,提问作者Gaspar Bosch
相关产品推荐
相关产品推荐

