Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从javascript发布json?_Javascript_Wcf_Rest - Fatal编程技术网

如何从javascript发布json?

如何从javascript发布json?,javascript,wcf,rest,Javascript,Wcf,Rest,我想使用javascript从html网页向WCF发送json字符串。。有什么好的教程吗 这是我正在使用的代码 <head> <title>Test</title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> <script typ

我想使用javascript从html网页向WCF发送json字符串。。有什么好的教程吗

这是我正在使用的代码

<head> 
   <title>Test</title> 
   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
   <script type="text/javascript" src="http://www.json.org/json2.js"></script> 
   <script type="text/javascript"> 
     $(function() { 
      JSONStringer json = new JSONStringer()

                      .object()   
                      .key("cno").value("2000")
                      .key("cname").value("HI")
                      .key("cmail").value("HI")
                      .key("cphno").value("9292")
                      .key("cmailtype").value("Home")
                      .key("cphnotype").value("Office")
                      .key("clientno").value("1")

                    .endObject();
       var dat = JSON.stringify(json.serializeArray()); 

       alert("I am about to POST this:\n\n" + dat); 

       $.post( 
         frm.attr("action"), 
         dat, 
         function(data) { 
           alert("Response: " + data); 
         } 
       ); 
     }); 
   </script> 
</head> 

试验
$(函数(){

JSONStringer json=新的JSONStringer() .object() .关键(“cno”).价值(“2000”) .键(“cname”).值(“HI”) .key(“cmail”).value(“HI”) .键(“cphno”).值(“9292”) .key(“cmailtype”).value(“Home”) .key(“cphnotype”).value(“办公室”) .key(“客户号”)。值(“1”) .endObject(); var dat=JSON.stringify(JSON.serializeArray()); 警报(“我即将发布此信息:\n\n”+dat); $邮政( 联邦储备银行(“行动”), dat, 函数(数据){ 警报(“响应:+数据); } ); });
让我知道我必须将其发布到特定服务的位置。。类似于指定URL的内容

  • 获取json.js
  • 将数组或对象编码为json
  • 请求发布json字符串。辛普雷斯
    这几乎是您所需要的全部,不确定WCF方面的情况,但如果它是一个合适的Web服务,那么您所需要的就是描述符,以确定函数名及其参数。

    我认为您将java与javascript混为一谈。尽管他们的名字不同,但他们之间没有任何联系。据我所知,
    JSONStringer
    在javascript和jquery中都不存在。JSON代表JavaScript对象表示法,这意味着它是javscript语言的本机语言(有一些细微的差异)。因为它非常接近,所以在javascript中解析Json非常容易

    另外,javascript是一种动态类型化语言,因此按照通常的方式提供类型会导致解析错误。当您的代码无法工作时,请使用firebug或Chrome控制台。当浏览器无法解析代码时,您将看到一个错误

    对于您可能想要使用的序列化(在支持JSON和/或with的浏览器中)

    该url位于您放置的位置
    frm.attr(“操作”)
    。我看不到在哪里创建
    frm
    对象。我认为您不需要JQuery对象,所有主流浏览器都支持
    document.getElementById
    ,我打赌它也会更快

    var myForm = document.getElementById('myformid');
    $.post( 
      myForm.action, 
      dat, 
      function(data) { 
        alert('Response: ' + data); 
      } 
    ); 
    
    另外据我所知,postdata必须是查询参数格式,所以可能需要

    'myData=' + dat,
    

    从web复制/粘贴代码可以快速启动,但许多javascript程序员忘记了必须先理解语言。不要只是盲目地复制代码,试着理解会发生什么。首先尝试在没有库的情况下解决问题,并找出您真正需要库的地方。

    从客户机的角度来看,将JSON发送到WCF的可能重复与将JSON发送到任何web服务没有什么不同。@marcelo:在标题格式上有什么需要更改的吗?无论我发送什么,wcf都将其作为空对象保存?JSONStringer json=new JSONStringer()??您的意思必须是var json=new JSONStringer();JavaScript中的变量是动态类型化的。@jambox:在没有ajax的情况下做这项工作有可能吗?我想要简单的javascript不想让示例程序变得复杂。@jan:我正在使用这个文件,但它不起作用。我想你可以手工制作http帖子(!),但这会让它更难,而不是更简单。执行AJAX请求非常简单。这样想吧——你需要做两件事:1。将数据编码为JSON字符串2。以某种方式发布数据。如果你想让AJAX变得更简单,你可以试试JQuery或pyjamas(后者真的很容易做到)@Adhavan:我用它来序列化和解析json。我很肯定它是有效的。除非你想用它做些不同的事情。你看过文件顶部的评论了吗?它解释了它的工作原理和使用方法。@jambox:s我正在jQuery中查找一些东西!谢谢你,简。我对java和javascript非常陌生,我对这些东西很困惑。你的回答很有用,谢谢
    'myData=' + dat,