Azure部署的Python-Django应用AJAX请求失败及网关超时求助
Django部署Azure后AJAX请求失败及网关超时排查方案
AJAX请求异常排查
- 修正请求路径:Azure部署的应用可能带有虚拟应用前缀,本地使用的绝对路径
/PlanEx/DCC/GerarTabelaAnova需调整为适配Azure环境的路径。比如应用部署在https://yourapp.azurewebsites.net/myapp下,URL应改为/myapp/PlanEx/DCC/GerarTabelaAnova,或使用相对路径(根据当前页面位置调整)。 - 确保携带CSRF令牌:Django生产环境下POST请求必须验证CSRF令牌,在AJAX请求中添加令牌处理逻辑:
$.ajaxSetup({ headers: { "X-CSRFToken": getCookie("csrftoken") } }); function getCookie(name) { let cookieValue = null; if (document.cookie && document.cookie !== '') { const cookies = document.cookie.split(';'); for (let i = 0; i < cookies.length; i++) { const cookie = cookies[i].trim(); if (cookie.substring(0, name.length + 1) === (name + '=')) { cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); break; } } } return cookieValue; } - 核对路由映射:确认Django的
urls.py中GerarTabelaAnova的路由配置在Azure环境下能被正确匹配,排查是否因静态文件路由或虚拟路径冲突导致404错误。 - 查看Azure日志:在Azure门户的应用服务中,通过日志流或诊断日志获取AJAX请求的具体状态码(如403、404、500)及错误详情,精准定位问题。
网关超时问题处理
- 调整应用服务超时设置:在Azure门户的应用服务常规设置中,延长请求超时时间(默认230秒),适配后端耗时较长的处理逻辑。
- 优化后端性能:检查
GerarTabelaAnova视图的业务逻辑,优化数据库查询(添加索引、减少关联查询)、缓存重复计算结果,或采用异步任务(如Celery+Azure Redis)处理耗时操作。 - 同步网关超时配置:若使用Azure应用网关,确保网关的超时设置与应用服务保持一致,避免网关提前断开连接。
- 启用自动缩放:配置应用服务的自动缩放规则,根据CPU、内存使用率或请求数自动增加实例数量,应对流量高峰导致的超时。
内容的提问来源于stack exchange,提问作者ViniciusDevelopment
相关产品推荐
相关产品推荐

