我在移动浏览器(和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);
所有这三个都在桌面计算机上工作(控制台记录成功消息),但在移动设备上它会发出警报" STATUS 0"。
我无法解决为什么这种情况在桌面设备上运行良好,但xmlhttp.status
在移动设备上0
。
答案 0 :(得分:0)
好的,谢谢你的帮助!
我加载了iOS Safari DevTools并观看了控制台。即使我已经将我的路径改为&/39 / / assets / php /...',我也遇到了跨站点脚本问题。
这是因为.htaccess文件强制所有流量通过' www。'但是我的初始网页和我的AJAX文件都没有在两个目录上起作用(所以有些路径没有,而且有些路径没有' www。')。
我已经更新了我的.htaccess(出于某种原因,它不会仅仅针对桌面Chrome浏览器请求iOS Safari),现在它运行正常!