如何从javascript发布json?
我想使用javascript从html网页向WCF发送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
<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的内容
这几乎是您所需要的全部,不确定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,