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

XHR在本地IIS服务器正常运行,静态IP访问时失效

解决Windows Server 2012 R2 IIS公网访问时XHR请求无响应的问题

根据你描述的情况——本地环境下XHR请求能正常获取内容,但通过静态公网IP访问时无任何响应,我整理了几个最可能的排查和解决方向:

1. 确认IIS站点的绑定配置

首先要确保你的IIS站点没有仅绑定内网IP或localhost,否则公网请求无法被IIS接收:

  • 打开IIS管理器,找到目标站点,右键选择「编辑绑定」
  • 检查HTTP/HTTPS绑定的「IP地址」选项:如果设置为内网IP或127.0.0.1,请改为你的静态公网IP,或者选择「*(所有未分配)」(这样IIS会监听所有可用IP)
  • 确认绑定的端口和你端口转发的端口一致(比如默认80/443)

2. 验证端口转发规则的有效性

端口转发配置错误是公网访问失败的常见原因:

  • 登录路由器管理后台,检查端口转发规则:确保外部端口(比如80)指向服务器的内网IP和IIS监听的端口(要和站点绑定的端口完全匹配)
  • 在外部网络的机器上,用telnet 你的公网IP 端口命令测试连通性,如果无法连接,说明端口转发或防火墙存在问题
  • 注意:如果你的ISP屏蔽了80/443端口,可能需要改用其他端口(比如8080),同时同步更新IIS绑定和端口转发规则

3. 检查Windows防火墙及其他防火墙设置

本地测试时内网请求可能被防火墙放行,但公网请求被拦截:

  • 打开控制面板→Windows防火墙→高级设置
  • 进入「入站规则」,找到「World Wide Web Services (HTTP Traffic-In)」规则,右键选择「属性」
  • 在「高级」标签页,确保「配置文件」勾选了「公网」(或者所有网络)
  • 如果没有现成的规则,新建一个入站规则:允许特定端口(比如80)的TCP连接,应用到公网配置文件

4. 确认文件权限与路径正确性

虽然本地正常,但公网访问时可能存在权限或路径问题:

  • 检查demo_get.txt文件是否和HTML页面在IIS站点的根目录下
  • 右键文件→「属性→安全」,确保IIS_IUSRS用户拥有读取权限(如果没有,添加该用户并赋予读取权限)
  • 可以直接在浏览器访问http://你的公网IP/demo_get.txt,看是否能正常加载文件——如果不行,说明文件路径或权限有问题

5. 查看浏览器控制台的错误信息

公网访问时,打开浏览器开发者工具(F12),切换到「控制台」标签,查看具体错误提示:

  • 如果是404 Not Found:说明请求的文件路径不正确,检查相对路径或站点根目录配置
  • 如果是net::ERR_CONNECTION_TIMED_OUT:说明网络层面无法连接,回到端口转发和防火墙排查
  • 如果是CORS相关错误:虽然同域名下不会出现,但如果端口转发的端口和IIS监听端口不一致,可能触发跨域,需要确保端口一致

按照以上步骤逐一排查,应该能解决XHR请求无响应的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:48:33