热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ajaxpostxml

varXMLHttpReqfalse;//创建XMLHttpRequest对象(主函数不需改变)functioncreateXMLHttpRequest(){if(window.XMLHttpRequest){//Mozilla浏览器XMLHttpReqnewXMLHttpRequest();}elseif(windo

var XMLHttpReq = false;
//   创建   XMLHttpRequest   对象(主函数不需改变)  
function createXMLHttpRequest(){
    if (window.XMLHttpRequest) { //   Mozilla   浏览器  
        XMLHttpReq = new XMLHttpRequest();
    }
    else
        if (window.ActiveXObject) { //   IE   浏览器  
            try {
                XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch (e) {
                try {
                    XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (e) {
                }
            }
        }
}

//第一步:创建一个XML的DOM对象,可用如下方法完成

function CreateDomDoc() //创建XML文档对象
{
    var signatures = ["Msxml2.DOMDocument.5.0", "Msxml2.DOMDocument.4.0", "Msxml2.DOMDocument.3.0", "Msxml2.DOMDocument", "Microsoft.XmlDom"];
    for (var i = 0; i < signatures.length; i++) {
        try {
            var domDoc = new ActiveXObject(signatures[i]);
            return domDoc;
        }
        catch (e) {
        }
    }
    return null;
}


//第二步:从客户端取得数据写入XML,方法如下:
function CreateXml(doc){
    var root = doc.createElement("root");
    var title = doc.createElement("title");
    title.text = document.getElementByIdx("tbTitle").value;
    root.appendChild(title);
   
    var ToGrade = doc.createElement("ToGrade");
    ToGrade.text = document.getElementByIdx("ddlToGrade").options[document.getElementByIdx("ddlToGrade").selectedIndex].value;
    root.appendChild(ToGrade);
   
    var cOntent= doc.createElement("content");
    content.text = getEditorContents();
    root.appendChild(content);
   
    var BreviaryPic = doc.createElement("BreviaryPic");
    BreviaryPic.text = document.getElementByIdx("BreviaryPicUrl").value;
    root.appendChild(BreviaryPic);
   
    var classID = doc.createElement("classID");
    classID.text = chkCheckBoxChs("articleClass");
    root.appendChild(classID);
   
   
    //alert(classID.text);
   
    doc.appendChild(root);
    //alert(doc.xml);
    return doc.xml;
   
}


//第三步 互相调用


//第四步 AJAX发送
function sendRequest(url, domDoc){
    createXMLHttpRequest();
    XMLHttpReq.Onreadystatechange= processResponse;
    XMLHttpReq.open("POST", url, false);
    XMLHttpReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;"); //关键,否则出错
    XMLHttpReq.send(domDoc); //发送一定是domDoc文档对象,如果只发送xml将出错”statue=500”
}


//处理返回信息函数(处理xml格式的返回信息)
function processResponse(){
    if (XMLHttpReq.readyState == 4) {
        if (XMLHttpReq.status == 200) {
            info = XMLHttpReq.responseText;
            //alert(info);
            if (info == "1") {
                ShowMsgo.show(msgTitle,msgContentSuccess, 2)
            }
   else{
    ShowMsgo.show(msgTitle,msgContentFaild, 2)
   }
        }
        else {
            //alert("ajax调用失败!" + XMLHttpReq.status);
   ShowMsgo.show(msgTitle,msgContentFaild, 2)
        }
    }
   
}

//建立doc
function CreateDomXml(){
    var domDoc = CreateDomDoc(); //创建对象 将用send发送到服务器端
    if (domDoc != null) {
        var xml = CreateXml(domDoc); //写入xml 返回xml文档
        //alert(domDoc);//
        return domDoc;
    }
    else {
        alert("未安装MSXML控件");
    }
}

//页面执行方法
function sendto(){
    if (document.form1.tbTitle.value == "") {
        alert("请填写文章标题");
        document.form1.tbTitle.focus();
        return false;
    }
    else
        if (getEditorContents() == "") {
            alert("请填写文章内容");
            return false;
        }
        else
            if (chkCheckBoxChs("articleClass") == "") {
                alert("请选择文章发布类别");
                return false;
            }
            else {
                var url = "ajaxArticleAdd.aspx";
                var doc = CreateDomXml();
                //alert(doc.xml);
                sendRequest(url, doc)
            }
}

 

//多选框选值
function chkCheckBoxChs(objNam){ //获得多选框连续值
    var obj = document.getElementsByName(objNam); //?取多?框?到M
    var objLen = obj.length; //?取???L度
    var objYN; //多选框选择的值  0为未选  1为选择   "|"分隔符
    var i;
    var result = "";
   
    for (i = 0; i         if (obj[i].checked == true) {
            objYN = obj[i].value;
           
        }
        else {
            objYN = "";
        }
        //result+=objYN;
        if (objYN != "") {
            if (i == (objLen - 1)) {
                result = result + objYN;
            }
            else {
                result = result + objYN + ",";
            }
        }
    }
    return result;
   
}

 

//服务端

string title = string.Empty;
        string cOntent= string.Empty;
        string classid = string.Empty;
        string toGrade = string.Empty;
        string breviaryPic = string.Empty;

        Request.COntentEncoding= System.Text.Encoding.GetEncoding("gb2312");
        XmlDocument xmldoc = new XmlDocument(); //建立xml文档对象
        xmldoc.Load(Request.InputStream); //接受ajax发送的xml文档对象流 //也可以接受普通字符流

        XmlNode nodeTitle = xmldoc.SelectSingleNode("//title"); //获得title节点
        title = nodeTitle.InnerText; //取得节点值
        XmlNode nodetoGrade = xmldoc.SelectSingleNode("//ToGrade");
        toGrade = nodetoGrade.InnerText;
        XmlNode nodeclassid = xmldoc.SelectSingleNode("//classID");
        classid = nodeclassid.InnerText;

        breviaryPic = xmldoc.SelectSingleNode("//BreviaryPic").InnerText;
        cOntent= xmldoc.SelectSingleNode("//content").InnerText;

 


推荐阅读
  • 本文介绍了多个关于JavaScript的书籍资源、实用工具和编程实例,涵盖从入门到进阶的各个阶段,帮助读者全面提升JavaScript编程能力。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 本文详细介绍了如何利用Go语言和WebSockets技术构建一个高效的实时聊天系统。随着网络应用的日益复杂化,实时交互成为了提升用户体验的关键要素之一。通过本指南,开发者可以学习到最新的技术和最佳实践。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 本文探讨了在不使用服务器控件的情况下,如何通过多种方法获取并修改页面中的HTML元素值。除了常见的AJAX方式,还介绍了其他可行的技术方案。 ... [详细]
  • 本文详细介绍了中央电视台电影频道的节目预告,并通过专业工具分析了其加载方式,确保用户能够获取最准确的电视节目信息。 ... [详细]
  • 本文探讨了在通过 API 端点调用时,使用猫鼬(Mongoose)的 findOne 方法总是返回 null 的问题,并提供了详细的解决方案和建议。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文探讨了在Windows Server 2008环境下配置Tomcat使用80端口时遇到的问题,包括端口被占用、多项目访问失败等,并提供详细的解决方法和配置建议。 ... [详细]
  • 本文详细介绍了Java Web应用程序中的过滤器(Filter)功能,包括其作用、实现方式及配置方法。过滤器可以在请求到达目标资源之前对其进行预处理,并在响应返回给客户端之前进行后处理。 ... [详细]
  • 探讨如何从数据库中按分组获取最大N条记录的方法,并分享新年祝福。本文提供多种解决方案,适用于不同数据库系统,如MySQL、Oracle等。 ... [详细]
  • 探讨了如何解决Ajax请求响应时间过长的问题。本文分析了一个从服务器获取少量数据的Ajax请求,尽管服务器已经对JSON响应进行了缓存,但实际响应时间仍然不稳定。 ... [详细]
  • 当unique验证运到图片上传时
    2019独角兽企业重金招聘Python工程师标准model:public$imageFile;publicfunctionrules(){return[[[na ... [详细]
  • 理解文档对象模型(DOM)
    本文介绍了文档对象模型(DOM)的基本概念,包括其作为HTML文档的节点树结构,以及如何通过JavaScript操作DOM来实现网页的动态交互。 ... [详细]
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
author-avatar
你不必害怕q因为我会发光
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有