使用$ .post发送JSON数据

时间:2011-03-24 00:30:32

标签: jquery json rest

我正在编写一个与node.js服务器连接的jQuery应用程序,所以我想在任何地方传递JSON。

似乎jQuery的$.post(url, data, ...)方法以URL编码形式发送其数据。即,{foo: true, bar: "baz"}变为foo=true&bar=baz,丢失了数据类型信息。

我可以让jQuery以JSON格式发送数据吗?或者我应该使用前$.post'字符串来调用JSON.stringify吗?

2 个答案:

答案 0 :(得分:1)

简短的回答是jQuery不会为你做这件事。从jQuery soure拉出来:

// convert data if not already a string
if ( s.data && s.processData && typeof s.data !== "string" ) {
    s.data = jQuery.param( s.data, s.traditional );
}

基本上如果数据不是一个字符串,jQuery将把它解析成一个就像你看到的那样。因此,如果您希望它是JSON进入服务器,那么您将不得不自己动手。我建议不要使用JSON.stringify,因为它不是跨浏览器。如果你有兴趣,这是我的“toJSON”函数:https://gist.github.com/884348

如果你愿意的话,你总是可以搞砸$ .ajax。我做得很好。

答案 1 :(得分:0)

我相信使用$ .post可能是你最好的选择。但是,如果您正在使用Node.js并且正在构建一个JavaScript密集型应用程序,我建议您检查Now.js以获取Node.js服务器和客户端代码之间的RPC调用。

使用Now.js和Node.js创建聊天应用程序有一个很好的例子。但是,如果您非常关注性能客户端,我不确定如何实现Now.js的内部。

<强>更新

以下是Now.js主页的链接:http://nowjs.com。 使用此框架,您的客户端和服务器端可以非常紧密地协同工作。

相关问题