热门标签 | 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技术构建一个高效的实时聊天系统。随着网络应用的日益复杂化,实时交互成为了提升用户体验的关键要素之一。通过本指南,开发者可以学习到最新的技术和最佳实践。 ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文探讨了 RESTful API 和传统接口之间的关键差异,解释了为什么 RESTful API 在设计和实现上具有独特的优势。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 本文探讨了在不使用服务器控件的情况下,如何通过多种方法获取并修改页面中的HTML元素值。除了常见的AJAX方式,还介绍了其他可行的技术方案。 ... [详细]
  • 本文详细介绍了中央电视台电影频道的节目预告,并通过专业工具分析了其加载方式,确保用户能够获取最准确的电视节目信息。 ... [详细]
  • 本文介绍了ArcXML配置文件的分类及其在不同服务中的应用,详细解释了地图配置文件的结构和功能,包括其在Image Service、Feature Service以及ArcMap Server中的使用方法。 ... [详细]
  • 本文详细介绍如何利用已搭建的LAMP(Linux、Apache、MySQL、PHP)环境,快速创建一个基于WordPress的内容管理系统(CMS)。WordPress是一款流行的开源博客平台,适用于个人或小型团队使用。 ... [详细]
  • 本文探讨了Java编程的核心要素,特别是其面向对象的特性,并详细介绍了Java虚拟机、类装载器体系结构、Java类文件和Java API等关键技术。这些技术使得Java成为一种功能强大且易于使用的编程语言。 ... [详细]
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社区 版权所有