热门标签 | 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;

 


推荐阅读
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • 本文介绍了使用FormData对象上传文件同时附带其他参数的方法。通过创建一个表单,将文件和参数添加到FormData对象中,然后使用ajax发送POST请求进行文件上传。在发送请求时,需要设置processData为false,告诉jquery不要处理发送的数据;同时设置contentType为false,告诉jquery不要设置content-Type请求头。 ... [详细]
  • 本文介绍了DataTables插件的官方网站以及其基本特点和使用方法,包括分页处理、数据过滤、数据排序、数据类型检测、列宽度自动适应、CSS定制样式、隐藏列等功能。同时还介绍了其易用性、可扩展性和灵活性,以及国际化和动态创建表格的功能。此外,还提供了参数初始化和延迟加载的示例代码。 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
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社区 版权所有