【发布时间】:2012-06-28 20:39:48
【问题描述】:
我正在使用 jQuery 中的 $.post() 函数使用 JSON 字符串进行 Ajax 调用。调用如下所示:
$.post(
urlVar,
jsonVar,
function(data){
//do stuff
},
'json'
)
.complete(function(){
//do other stuff
});
要创建 jsonVar 我正在使用此代码
var1 = {};
var1.id = fooId;
var1.amount = fooAmount;
var1.zoom = fooZoom;
jsonVar = JSON.stringify(var1);
为了使调用正常工作,jsonVar 应该如下所示
{id:fooId, amount:fooAmount, zoom:fooZoom}
但它看起来像这样
{"id":fooId, "amount":fooAmount, "zoom":fooZoom}
现在我的代码将无法工作,因为双引号。我不知道如何摆脱这些。谁能帮帮我?
重要提示:
如果我像这样放置$.post() 函数,代码确实可以工作:
$.post(
urlVar,
{id: fooId, amount: fooAmount, zoom: fooZoom},
function(data){
//do stuff
},
'json'
)
.complete(function(){
//do other stuff
});
【问题讨论】:
-
我会插话,AJAX 调用的接收端可能存在根本性错误,因为第二个 JSON 字符串是合法的 JSON 语法。事实上,我认为这实际上是标准的(超过无引号版本)。
-
您的示例似乎存在缺陷,因为“缩放”从来都不是 var1 的一部分,而是实际上是 var2 的一部分。
-
我在不同的浏览器中遇到了同样的问题。它在 qouting json-string 中的值之后起作用。比如:{"id":"fooId", "amount":"fooAmount", "zoom":"fooZoom"}
-
@MarkSchultheiss 我的错,这是一个错字。
-
@LuudJacobs ~ 如果可行,那么将
var1直接传递到AJAX 调用中也应该可以。你试过了吗?
标签: javascript jquery ajax json stringify