移动端m站XMLHttpRequest类型Ajax请求无法正常运行问题求助
问题排查方向
- 跨域配置问题
www与m属于不同子域名,若你的Ajax请求接口硬编码为www域名下的地址,或服务端CORS配置仅允许www域名发起请求,m站发起请求时会被浏览器的同源策略拦截。你可以在浏览器控制台的「网络」标签页查看对应请求是否有CORS报错,补充配置m站域名到服务端的跨域白名单即可解决。 - CSP安全策略限制
不少站点会为移动端配置更严格的内容安全策略(CSP),若CSP规则中未添加允许请求的接口域名,Ajax请求会被直接拦截。可查看控制台是否有Content Security Policy相关报错,调整响应头的CSP规则即可。 - 函数触发逻辑异常
当前你仅提供了Ajax初始化的代码片段,未提供函数触发相关逻辑。可先在ajaxfunc第一行添加console.log('函数调用'),确认m站场景下函数是否真的被触发:很多时候是因为移动端使用触摸事件、而PC端绑定的是点击事件,或m站对应DOM元素不存在导致事件绑定失效,函数根本没有运行。 - 协议不一致问题
若www站与m站使用的协议不同(一个是https、一个是http),而接口地址固定为某一种协议,会出现混合内容拦截问题,浏览器会直接终止非安全请求,需保证站点协议与接口请求协议一致。 - 旧兼容逻辑干扰
代码中针对IE的ActiveXObject兼容逻辑不会影响现代移动端浏览器,但如果你的m站有定制的浏览器运行环境限制,可额外排查是否环境禁用了XMLHttpRequest对象。
内容的提问来源于stack exchange,提问作者Asher Sommer
相关产品推荐
相关产品推荐

