﻿// JScript 文件

//发送 GET 方式的ajax请求函数,参数包括(是否异步,请求页面地址,处理返回请求的函数地址)
var info_type=""; //信息类型
var curr_page="";

var xmlhttp;//全局变量
var procObject=0;//判断是谁调用了请求

function SendAjax(IsAsyn,url)
{ 
    if(typeof (xmlhttp)=="undefined")
    {
        if(window.ActiveXObject)
        {
            xmlhttp=new ActiveXObject(navigator.userAgent.indexOf("MSIE 5")>=0 ? "Microsoft.XMLHTTP":"Msxml2.XMLHTTP");
        }
        else if(window.XMLHttpRequest)
        {           
            xmlhttp=new XMLHttpRequest();
        }
    }
   
    xmlhttp.open("GET",url,IsAsyn);
    
    //告知浏览起怎么解析我们发送的数据
    xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    
    //保证浏览器发送的串行数据正确
    if(xmlhttp.overrideMimeType)
    {
        xmlhttp.setRequestHeader("Connection","close");
    }
    
    //请求状态改变处理函数
    xmlhttp.onreadystatechange=function()
    {  
        //收到请求回应或者请求成功
        if(xmlhttp.readystate==4 )
        {
          
            //检查请求是否成功
            if(httpSuccess(xmlhttp))
            {
                //数据接受完成
                if(xmlhttp.status==200)
                {
                    //调用处理返回数据的函数
                    procEcho();
                    
                }
            }
            else
            {      
                alert("请求出错或者超时,请稍候再试!错误的代号:"+getStatus());
                return;
            }
        }
        
    }
    
    //发送请求
    xmlhttp.send(null);
    
}


//检查请求是否成功
function httpSuccess(r)
{
    try
    {
        //如果得不到服务器状态,且我们正在请求本地文件,认为成功,所有200到300状态码算成功,文档未修改算成功,
        return !r.status && location.protocol=="file:" || (r.status >= 200 && r.status <300) || r.status==304 || navigator.userAgent.indexOf("Safari")>=0 && typeof (r.status)=="undefined";
    }
    catch(e)
    {
        
    }
    
    //若检查状态失败,就假定成功
    return false;
}

//处理返回数据
function procEcho()
{
    switch(procObject)
    {
    case 1:Get_news();break;//获取新闻
    case 2:get_product();break;//获取产品知识
    case 3:Get_type();break;//读取分类
    case 4:Get_all_Info();break;//读取全部信息
    case 5:Get_product_info();break;//获取产品信息
    case 6:set_type();break;//设置产品分类
    default:break;
    }
}
//获取请求状态信息
function getStatus()
{
    var status="";
  
    switch(xmlhttp.status)
    {
    case 200:status="完成接收";break;//完成接收
    case 201:status="创建接收";break;//创建接收
    case 204:status="没有连接";break;//没有连接
    case 205:status="重新安排内容";break;//重新安排内容
    case 206:status="部分内容";break;//部分内容
    case 400:status="错误要求";break;//错误要求
    case 401:status="未经认可的";break;//未经认可的
    case 403:status="被禁止";break;//被禁止
    case 404:status="没有找到";break;//没有找到
    case 405:status="方法不允许";break;//方法不允许
    case 406:status="不能访问";break;//不能访问
    case 407:status="要求验证代理";break;//要求验证代理
    case 408:status="查询超时";break;//查询超时
    case 411:status="获取长度";break;//获取长度
    case 413:status="查询内容太大";break;//查询内容太大
    case 414:status="查询url太长";break;//查询url太长
    case 415:status="不支持的媒体类型";break;//不支持的媒体类型
    case 500:status="内部服务错误";break;//内部服务错误
    case 501:status="没有执行";break;//没有执行
    case 502:status="网关错误";break;//网关错误
    case 503:status="服务器不可到达";break;//服务器不可到达
    case 504:status="网关超时";break;//网关超时
    case 505:status="http版本不支持";break;//http版本不支持
    default:break;
    }
    
    return status;
}
