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

使用AngularJS模态框搭配ASP.NET时出现406 Not Acceptable错误排查

排查AngularJS uibModal 406 Not Acceptable错误(仅单台机器出现)

遇到这种只有一台机器出问题的情况确实闹心——毕竟项目代码、开发工具都是一致的,大概率是这台机器的本地环境配置有差异。先给你理清楚406错误的核心:服务器已经处理了你的请求,但返回的内容格式不符合客户端请求头里Accept字段指定的类型。结合你的场景,按优先级试试这些排查步骤:

  • 对比浏览器请求头,排查插件篡改
    打开浏览器F12开发者工具的「Network」标签,触发模态框加载HTML的请求,重点看「Request Headers」里的Accept字段,和正常机器的做对比。比如正常机器的Accept可能包含text/html,而出问题的机器可能缺失这个类型,或者被加了奇怪的自定义值。
    另外,试试禁用这台机器浏览器的所有插件(尤其是广告拦截、隐私类插件),很多这类工具会偷偷修改HTTP请求头,导致服务器返回的内容不匹配。

  • 检查IIS Express的本地配置差异
    虽然项目副本完全一致,但IIS Express的本地配置文件是不会同步的:

    • 找到项目根目录下的.vs\config\applicationhost.config(这个文件夹默认是隐藏的,要先显示隐藏文件),对比正常机器的同文件,重点看<mimeMap>节点,确认有没有.html对应的text/html类型配置。如果缺失,手动添加:<mimeMap fileExtension=".html" mimeType="text/html" />
    • 确认三台机器的IIS Express版本一致:打开命令提示符,输入"%ProgramFiles%\IIS Express\iisexpress.exe" -v查看版本,不同版本的默认配置可能有差异。
  • 检查系统级MIME类型设置
    这台机器的系统级MIME类型可能被修改过:

    • 打开「控制面板→程序→打开或关闭Windows功能」,确保「Internet Information Services」下的「Common HTTP Features」里的「Static Content」已经勾选。这个选项负责处理静态文件的MIME类型映射。
    • 如果有安装完整IIS,可以打开IIS管理器,查看服务器级的「MIME类型」,确认.html对应的是text/html。
  • 清除本地存储的AngularJS自定义配置
    虽然代码一致,但这台机器的浏览器本地存储(localStorage/sessionStorage)可能残留了自定义的AngularJS配置,比如全局修改了$httpProvider的默认Accept头:
    在浏览器控制台执行以下命令,然后重启浏览器测试:

    localStorage.clear();
    sessionStorage.clear();
    
  • 排查代理/防火墙的干扰
    看看这台机器是不是开启了本地代理、VPN或者企业级防火墙?这类工具经常会篡改HTTP请求头或响应头,导致内容类型不匹配。临时关闭这些工具,再测试模态框加载是否正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:00:04