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

移动端非www前缀域名下Ajax功能失效问题求助

问题描述
  • 桌面端访问domain.com或www.domain.com,网页Ajax功能均正常
  • 移动端访问www.domain.com功能正常,但访问裸域名domain.com时,仅Ajax按钮失效:onclick事件里的alert能触发,但showRegistrationForm函数内的逻辑(包括Ajax请求)无响应
  • 服务器为IIS6,已配置domain.com和www.domain.com两个网站标识,Ajax请求本地文件Server.asp,当前无URL重写/重定向功能,也没有web.config文件
相关代码

页面按钮代码

<!-- mainpage -->
<button onclick="showRegistrationForm();"><b>Register</b></button>

JavaScript函数代码(scripts.js)

function showRegistrationForm()    {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', 'Server.asp?a=newform', true);
    xhr.onload = function() {
        if(this.status == 200){
           document.getElementById('regform').innerHTML=this.responseText;
        } else {
            document.getElementById('errmsg').innerHTML="Status " + this.status;
        }
    }
    xhr.onerror = function(){ console.log('Request Error...');}
    xhr.send()
}
排查与解决方法

1. 修正Ajax请求路径

部分移动端浏览器对相对路径的解析存在差异,改成动态获取当前域名的绝对路径:

function showRegistrationForm()    {
    var baseUrl = window.location.protocol + '//' + window.location.host;
    var xhr = new XMLHttpRequest();
    xhr.open('GET', baseUrl + '/Server.asp?a=newform', true);
    // 剩余逻辑保持不变
}

2. 核对IIS6双站点配置

确认domain.com和www.domain.com两个站点的配置完全一致:

  • 检查两个站点的根目录是否指向相同的文件路径
  • 确认Server.asp的匿名访问权限、脚本执行权限在双站点下无差异
  • 查看裸域名站点的HTTP头设置,是否存在Content-Security-Policy等安全头限制了XMLHttpRequest请求

3. 处理移动端缓存与协议问题

  • 给scripts.js添加版本参数强制刷新缓存:<script src="scripts.js?v=202405"></script>
  • 检查移动端浏览器是否自动将裸域名跳转至HTTPS,若站点未配置HTTPS,会导致Ajax请求失败(可通过移动端浏览器开发者工具查看网络请求状态)

4. 移动端调试定位错误

在移动端浏览器开启开发者工具(如Chrome远程调试),查看控制台输出:

  • 确认showRegistrationForm函数是否真的执行,可在函数开头添加console.log('form function triggered')
  • 查看是否有XMLHttpRequest相关的错误提示(如跨域、404、500状态码)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 00:14:55