代码之家  ›  专栏  ›  技术社区  ›  Ads

如何从javascript发布json?

  •  0
  • Ads  · 技术社区  · 14 年前

    我想用javascript从html网页发送一个json字符串到WCF。。有什么好的指导吗?

    <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> 
    

    让我知道我要把它寄到哪里去。。类似于指定URL

    2 回复  |  直到 14 年前
        1
  •  2
  •   Jan    14 年前

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

    另外,javascript是一种动态类型语言,因此像通常情况下那样提供类型会导致解析错误。当代码不起作用时,使用firebug或Chrome控制台。当浏览器无法分析您的代码时,您将看到一个错误。

    json2.js )

    var dat = JSON.stringify({
      cno: 2000,
      cname: 'HI',
      cmail: 'HI',
      cphno: '9292',
      cmailtype: 'home',
      cphnotype: 'Office',
      clientno: 1
    });
    

    url指向您放置的位置 frm.attr("action") . 我看不出你在哪里创造了 frm 反对。我觉得你不需要JQuery对象, document.getElementById

    var myForm = document.getElementById('myformid');
    $.post( 
      myForm.action, 
      dat, 
      function(data) { 
        alert('Response: ' + data); 
      } 
    ); 
    

    而且据我所知,postdata必须是查询参数格式,所以您可能需要

    'myData=' + dat,
    

        2
  •  0
  •   ripsin    11 年前

    http://www.learn-ajax-tutorial.com/PassingData.cfm#JSON

    1. 获取json.js。
    2. 将数组或对象编码为json。
    3. 请求发送json字符串。辛普雷斯!