问题描述
我在移动浏览器(和iPad等)上遇到AJAX请求问题,但在台式机上工作正常。 我完全不知道要怎么解决这里的问题。
var xmlhttp;
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}else{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == XMLHttpRequest.DONE ){
if(xmlhttp.status == 200){
console.log(xmlhttp.responseText);
}else{
alert("STATUS "+xmlhttp.status);
}
}
}
xmlhttp.open("GET","http://www.mywebsite.co.uk/assets/php/upvote.php?id="+id,true);
xmlhttp.send();
我也尝试过: xmlhttp.open("GET","/assets/php/upvote.php?id="+id,true);
和xmlhttp.open("GET","../php/upvote.php?id="+id,true);
这三者均在台式计算机上运行(控制台记录成功消息),但在移动设备上会发出“状态0”警报。
我无法弄清楚为什么它在台式机上可以正常工作,但是xmlhttp.status
在手机上为0
。
1楼
好的,谢谢您的帮助!
我加载了iOS Safari DevTools并观看了控制台。 即使将路径更改为“ / assets / php / ...”,我也遇到了跨站点脚本问题。
这是由于.htaccess文件强制通过“ www”访问所有流量。 但是我的初始网页和AJAX文件所在的两个目录都没有作用(因此某些路径存在,而某些路径没有'www。')。
我已经更新了.htaccess(由于某种原因,它无法在iOS Safari上运行,而只请求桌面Chrome浏览器),现在可以正常使用了!