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不是方法,应该系统的学医下
目录
相关文章
|
11天前
|
JSON JavaScript 前端开发
JavaScript原生代码处理JSON的一些高频次方法合集
JavaScript原生代码处理JSON的一些高频次方法合集
|
1月前
|
JSON JavaScript 前端开发
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
33 0
|
1月前
|
JavaScript 前端开发
JavaScript随手笔记 --- 对数据进行判断最大位数是否超过八位
JavaScript随手笔记 --- 对数据进行判断最大位数是否超过八位
|
1月前
|
XML 前端开发 数据格式
请描述如何使用`BeautifulSoup`或其他类似的库来解析 HTML 或 XML 数据。
【2月更文挑战第22天】【2月更文挑战第67篇】请描述如何使用`BeautifulSoup`或其他类似的库来解析 HTML 或 XML 数据。
|
1月前
|
存储 JSON Apache
揭秘 Variant 数据类型:灵活应对半结构化数据,JSON查询提速超 8 倍,存储空间节省 65%
在最新发布的阿里云数据库 SelectDB 的内核 Apache Doris 2.1 新版本中,我们引入了全新的数据类型 Variant,对半结构化数据分析能力进行了全面增强。无需提前在表结构中定义具体的列,彻底改变了 Doris 过去基于 String、JSONB 等行存类型的存储和查询方式。
揭秘 Variant 数据类型:灵活应对半结构化数据,JSON查询提速超 8 倍,存储空间节省 65%
|
7天前
|
存储 JSON JavaScript
「Python系列」Python JSON数据解析
在Python中解析JSON数据通常使用`json`模块。`json`模块提供了将JSON格式的数据转换为Python对象(如列表、字典等)以及将Python对象转换为JSON格式的数据的方法。
24 0
|
11天前
|
存储 JSON 数据挖掘
python逐行读取txt文本中的json数据,并进行处理
Python代码示例演示了如何读取txt文件中的JSON数据并处理。首先,逐行打开文件,然后使用`json.loads()`解析每一行。接着,处理JSON数据,如打印特定字段`name`。异常处理包括捕获`JSONDecodeError`和`KeyError`,确保数据有效性和字段完整性。将`data.txt`替换为实际文件路径运行示例。
11 2
|
11天前
|
JavaScript 前端开发
EasyUi js 加载数据表格DataGrid
EasyUi js 加载数据表格DataGrid
|
16天前
|
XML JSON JavaScript
使用JSON和XML:数据交换格式在Java Web开发中的应用
【4月更文挑战第3天】本文比较了JSON和XML在Java Web开发中的应用。JSON是一种轻量级、易读的数据交换格式,适合快速解析和节省空间,常用于API和Web服务。XML则提供更强的灵活性和数据描述能力,适合复杂数据结构。Java有Jackson和Gson等库处理JSON,JAXB和DOM/SAX处理XML。选择格式需根据应用场景和需求。
|
25天前
|
Java 数据库连接 mybatis
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
14 1