AJAX在移动设备上失败

时间:2015-07-17 13:19:50

标签: javascript ajax

我在移动浏览器(和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

1 个答案:

答案 0 :(得分:0)

好的,谢谢你的帮助!

我加载了iOS Safari DevTools并观看了控制台。即使我已经将我的路径改为&/39 / / assets / php /...',我也遇到了跨站点脚本问题。

这是因为.htaccess文件强制所有流量通过' www。'但是我的初始网页和我的AJAX文件都没有在两个目录上起作用(所以有些路径没有,而且有些路径没有' www。')。

我已经更新了我的.htaccess(出于某种原因,它不会仅仅针对桌面Chrome浏览器请求iOS Safari),现在它运行正常!