360浏览器是不是不支持Ajax?

失落夏天
Android领域优质创作者
博客专家认证
2013-08-11 12:15:18
快到七夕节了,想给她单独制作一个网站在七夕节送给她,算是给她一个惊喜吧。
网站也挺简单的,就一个主页和一个留言功能。
问题就出现在了留言功能这里,没学过php,所以我想通过Ajax首次加载的时候申请请求,服务端返回留言信息。返回的是字符串形式的,由JS解析之后显示在页面上。
发送没问题,但是在接受的时候,
我使用360浏览器发现req.status的值一直都是0,但是如果使用的IE或者火狐就是正常的200。
现在360浏览器用的这么广泛,真的不确信她用的是什么浏览器,所以我是想尽可能兼容所有的浏览器,这个问题该如何解决呢?

<script type="text/javascript">
/*通过异步传输XMLHTTP发送参数到ajaxServlet,返回符合条件的XML文档*/
var req=null;
function getResult() {
var message=document.getElementById('message');
var sendstr;
var url="http://127.0.0.1:8080/WebService/servlet/AjaxServlet?time="+new Date().toString();

if(message==null){
sendstr="";
alert("为空");
}else{
sendstr = "sendmsg=" + message.value;
alert("不为空");
}
if(window.ActiveXObject)
{
req = new ActiveXObject('Microsoft.XMLHTTP');
}
else if(window.XMLHttpRequest)
{
req = new XMLHttpRequest();
}
if (req) {
req.onreadystatechange = complete;
req.open("POST", url);
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.send(sendstr);
}
}

function complete() {
if (req.readyState == 4) {
if (req.status==200) {
var v = req.responseText;

showmsg(v);
}
if(req.status==0){
alert("抱歉,留言功能不支持360浏览器");
}
}
}
function showmsg(v){

var values=v.split("===");
for(var i=0;i<values.length;i++){
alert("留言提交成功");
if(values[i]!=null){
var values2=values[i].split("==");
document.getElementById("message"+(i+1)).innerHTML=values2[0];
document.getElementById("time"+(i+1)).innerHTML=values2[1];
}
}
}
window.onload=getResult();
</script>
...全文
772 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
蓝秋绽放 2014-07-10
  • 打赏
  • 举报
回复
同一问题,求答案
陈城玮 2013-08-17
  • 打赏
  • 举报
回复
肯定支持啊,用原生的js写异步应该能解决!
失落夏天 2013-08-17
  • 打赏
  • 举报
回复
引用 3 楼 showbo 的回复:
什么版本的360,新版本内核有IE和webkit。 如果status为0,返回的字符串格式正确也无所谓了,多增加status=0判断就行,status为0一般是本地file浏览器成功请求后就是0
    function complete() {
        if (req.readyState == 4) {
            if (req.status==200||req.status==0) {
                var v = req.responseText;
             alert(v)
                showmsg(v);
            }
           /* if(req.status==0){
                alert("抱歉,留言功能不支持360浏览器");
            }*/
        }
    }
其实重点是不是返回数值的多少,而且返回status为0的时候,确确实实的接收不到返回值。。 但是最称奇的是,部署到linux服务器上之后竟然又可以用了。
街头小贩 2013-08-11
  • 打赏
  • 举报
回复
不用 360的产品
  • 打赏
  • 举报
回复
什么版本的360,新版本内核有IE和webkit。 如果status为0,返回的字符串格式正确也无所谓了,多增加status=0判断就行,status为0一般是本地file浏览器成功请求后就是0
    function complete() {
        if (req.readyState == 4) {
            if (req.status==200||req.status==0) {
                var v = req.responseText;
             alert(v)
                showmsg(v);
            }
           /* if(req.status==0){
                alert("抱歉,留言功能不支持360浏览器");
            }*/
        }
    }
fzfei2 2013-08-11
  • 打赏
  • 举报
回复
var url="http://127.0.0.1:8080/WebService/servlet/AjaxServlet?time="+new Date().toString(); 改成 var url="http://127.0.0.1:8080/WebService/servlet/AjaxServlet?time="new Date().getTime() 试试

52,792

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧