You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows Server 2012 R2 IIS环境下AJAX请求无返回问题排查

Hey,我来帮你梳理下这个AJAX请求失败的问题,结合你提到的IIS配置错误,咱们从几个常见的配置坑来排查和修复:

问题诊断与修复方案

你的场景是Windows Server 2012 R2(6.2)上通过IIS搭建网站,默认文档目录下有test.html和ajax_info.txt,但点击按钮触发AJAX请求时无法获取内容,核心问题确实大概率出在IIS的配置细节上。

常见的IIS配置错误及修复步骤

1. 未启用静态文件处理模块

.txt属于静态文件,IIS默认可能未开启静态文件支持模块,导致服务器无法处理这类文件的请求:

  • 打开IIS管理器,选中你的目标网站
  • 在右侧功能视图中找到静态文件,双击进入
  • 如果模块未启用,点击右侧操作栏的「启用」(若显示「禁用」则说明已启用)
  • 也可以用命令行快速启用:
%windir%\system32\inetsrv\appcmd set config /section:staticContent /enabled:true

2. AJAX请求路径的绝对路径问题

你代码里写的是xmlhttp.open("GET","http://localhost/ajax_info.txt",true);,如果你的网站不是绑定在默认80端口(比如用了自定义端口)、或者绑定了特定域名,这个绝对路径会导致请求不匹配,甚至触发跨域问题。建议改成相对路径:

xmlhttp.open("GET","ajax_info.txt",true);

相对路径会自动匹配当前页面所在的目录,避免端口/域名不匹配的问题。

3. 请求筛选规则阻止了.txt文件

IIS的请求筛选可能默认阻止了某些文件扩展名的请求:

  • 在IIS管理器中选中网站,打开请求筛选
  • 切换到「文件扩展名」标签,检查.txt是否在拒绝列表中:
    • 如果在,选中它并点击右侧的「移除」
    • 如果不在,点击「允许添加」,手动添加.txt扩展名并保存

4. 文件权限不足

确保IIS应用池的身份有读取ajax_info.txt文件的权限:

  • 找到网站的物理目录,右键点击→「属性」→「安全」标签
  • 点击「编辑」→「添加」,输入IIS AppPool\你的应用池名称(比如默认应用池是IIS AppPool\DefaultAppPool),点击「检查名称」确认后添加
  • 给这个身份分配读取权限,点击确定保存

验证方法

修复配置后,先做基础验证:

  1. 直接在浏览器地址栏输入http://你的网站地址/ajax_info.txt,确认能正常显示文件内容
  2. 刷新test.html页面,点击「Change Content」按钮,测试AJAX请求是否正常工作

内容的提问来源于stack exchange,提问作者Mirza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:41:19