javascript post数据到WCF反馈json或者XML

简介: 前端代码: //创建XMLHTTPfunction createXMLHTTP(){var httpRequest;     try {        httpRequest = new XMLHttpRequest();     }     catch (e) {         try { ...

前端代码:

< script language = " javascript "  type = " text/javascript " >
// 创建XMLHTTP
function  createXMLHTTP(){
var  httpRequest;
     
try  {
        httpRequest 
=   new  XMLHttpRequest();
     }
     
catch  (e) {
         
try  {
             httpRequest 
=   new  ActiveXObject( " Msxml2.XMLHTTP " );
         }
         
catch  (e) {
            
try  {
                httpRequest 
=   new  ActiveXObject( " Microsoft.XMLHTTP " );
             }
            
catch  (e) {
                
return   null ;
            }
        }
    }
    
return  httpRequest;
}
// 构造XML格式的文本
function  createXML(){
  
var  id  =  document.getElementById( " id " ).value;  
  
var  title  =  document.getElementById( " title " ).value;
  
var  content  =  document.getElementById( " content " ).value;
  
var  xml  =   ' <?xml version="1.0" encoding="utf-8" ?> ' ;
  xml
+= ' <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> ' ;
  xml
+= ' <soap:Body> ' ;
  xml
+= ' <XmlService xmlns="http://tempUri.org/"> ' ;
  
// var xml = '';
  xml += ' <id type="number"> ' + id + ' </id> ' ;
  xml
+= ' <mytitle type="string"> ' + title + ' </mytitle> ' ;
  xml
+= ' <mycontent type="string"> ' + content + ' </mycontent> ' ;
  xml
+= ' </XmlService></soap:Body></soap:Envelope> ' ;
  
return  xml;
}
// 构造JSON字符串
function  createJSON(){
  
var  id  =  document.getElementById( " id " ).value;  
  
var  title  =  document.getElementById( " title " ).value;
  
var  content  =  document.getElementById( " content " ).value;
  
var  json  =   ' {"id": ' + id + ' ,"mytitle":" ' + title + ' ","mycontent":" ' + content + ' "} ' ;
  
return  json;
}
// 异步调用服务器
function  callServer(postType) { 
var  xmlHttp  = createXMLHTTP();
if  (xmlHttp  ==   null ) {alert( ' 浏览器不支持ajax ' ); return ;}
xmlHttp.onreadystatechange 
=   function (){
 
if  (xmlHttp.readyState  ==   4 ) {callBack(xmlHttp.responseText)}
}
var  body;
var  contentType;
var  url;
if (postType  ==   ' json ' ){
    body 
=  createJSON();
    contentType 
=   " application/json " ;
    url 
=   " /JsonXmlService.svc/JsonService " ;
}
if (postType  ==   ' xml ' ){
    body 
=  createXML();
    contentType 
=   " text/xml " ;
    url 
=   " /JsonXmlService.svc/XmlService " ;
}
xmlHttp.open(
" POST " , url,  true );
xmlHttp.setRequestHeader(
" Content-type " , contentType);
xmlHttp.send(body);
}
// 回调事件
function  callBack(responseText){
alert(responseText);
}
< / script>

前端还有几个HTML控件

< div >
    文章标题:
< input  type ="text"  id ="title"   />< br  />
    文章内容:
< textarea  rows =""  cols =""  id ="content" ></ textarea >
    
< input  type ="hidden"  id ="id"  value ="1"   />< br  />
    
< input  type ="button"   value ="以JSON方式提交"  onclick ="callServer('json');"   />
    
< input  type ="button"   value ="以XML方式提交"  onclick ="callServer('xml');"   />
    
</ div >
后端代码
using  System;
using  System.Text;
using  System.Runtime.Serialization;
using  System.ServiceModel;
using  System.ServiceModel.Activation;
using  System.ServiceModel.Web;
using  System.ServiceModel.Channels;
using  System.Xml.Serialization;
using  System.Xml;
using  System.IO;
namespace  JsonXmlWcf
{
    [ServiceContract(Namespace 
=   "" )]
    
public   interface  IJsonXmlService
    {
        [OperationContract]
        [WebInvoke(ResponseFormat 
=  WebMessageFormat.Json, BodyStyle  =  WebMessageBodyStyle.WrappedRequest)]
        MyDataType JsonService(
int  id,  string  mytitle,  string  mycontent);
        [OperationContract(Action
= " * " )]
        [WebInvoke(ResponseFormat 
=  WebMessageFormat.Xml, RequestFormat = WebMessageFormat.Xml, BodyStyle  =  WebMessageBodyStyle.WrappedRequest)]
        Message XmlService(Message m);
    }
    
public   class  JsonXmlService:IJsonXmlService
    {
        
public  MyDataType JsonService( int  id, string  mytitle, string  mycontent)
        {
            
return  MyService(id, mytitle, mycontent,  " 以JSON形式传递 " );
        }
        
public  Message XmlService(Message m)
        {
            
return  m;
        }
        
private  MyDataType MyService( int  id, string  mytitle, string  mycontent, string  info)
        {
            MyDataType MyData 
=   new  MyDataType();
            MyData.Id 
=  id;
            MyData.MyTitle 
=   string .Format( " {0}({1}) " , mytitle,info);
            MyData.MyContent 
=  mycontent;
            
return  MyData;
        }
    }
    [DataContract]
    
public   class  MyDataType
    {
        
private   int  _id;
        
private   string  _mytitle;
        
private   string  _content;
        [DataMember]
        
public   int  Id
        {
            
get  {  return  _id; }
            
set  { _id  =  value; }
        }
        [DataMember]
        
public   string  MyTitle
        {
            
get  {  return  _mytitle; }
            
set  { _mytitle  =  value; }
        }
        [DataMember]
        
public   string  MyContent
        {
            
get  {  return  _content; }
            
set  { _content  =  value; }
        }
    }

}
遗留问题
messagecontract
WCF是怎么序列化,反序列化消息的
一切消息的基类Message的成员

总结:这样搞WCF不是方法,应该系统的学医下
目录
相关文章
|
3月前
|
XML 数据采集 API
用Lxml高效解析XML格式数据:以天气API为例
免费Python教程:实战解析中国天气网XML数据,详解Lxml库高效解析技巧、XPath用法、流式处理大文件及IP封禁应对策略,助你构建稳定数据采集系统。
247 0
|
7月前
|
XML 存储 数据格式
抖音卡片链接生成器,xml卡片数据支持快手,通过XPOSED实现制作
本项目介绍抖音/快手卡片链接生成技术,包含技术原理与核心功能实现。通过Xposed框架Hook目标APP关键方法,自定义卡片生成与跳转逻辑。卡片数据以XML格式存储,便于解析和跨平台使用。提供完整代码示例,涵盖Xposed模块配置、XML数据结构、Hook实现及卡片生成器核心类。下载地址:https://www.pan38.com/share.php?code=DuNzA,提取码:8888(仅供学习参考)。
|
XML 存储 JSON
Twaver-HTML5基础学习(19)数据容器(2)_数据序列化_XML、Json
本文介绍了Twaver HTML5中的数据序列化,包括XML和JSON格式的序列化与反序列化方法。文章通过示例代码展示了如何将DataBox中的数据序列化为XML和JSON字符串,以及如何从这些字符串中反序列化数据,重建DataBox中的对象。此外,还提到了用户自定义属性的序列化注册方法。
220 1
|
XML JSON 数据可视化
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
本文详细介绍了不同数据集格式之间的转换方法,包括YOLO、VOC、COCO、JSON、TXT和PNG等格式,以及如何可视化验证数据集。
3936 1
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
|
存储 JSON JavaScript
js中JSON的使用
介绍JSON的基本概念和在JavaScript中的使用方式,包括JSON格式的语法规则、使用`JSON.stringify()`和`JSON.parse()`方法进行对象与字符串的转换,以及处理JSON数组数据。
js中JSON的使用
|
存储 JSON JavaScript
JavaScript JSON
【10月更文挑战第7天】JSON 是 JavaScript 中非常重要的一个数据格式,它为数据的表示和传输提供了一种简单而有效的方式。掌握 JSON 的使用方法和特点,对于开发高质量的 JavaScript 应用具有重要意义。
|
JSON JavaScript 前端开发
js如何格式化一个JSON对象?
js如何格式化一个JSON对象?
582 3
|
XML JSON JavaScript
js的json格式
js的json格式
|
XML Web App开发 数据格式
HTML 页面显示 XML 数据
10月更文挑战第2天
|
XML JSON 前端开发
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
2787 0