【发布时间】:2012-08-29 18:09:43
【问题描述】:
我正在向服务器发送一个简单的 JSON 帖子,并且我只在布尔值上检索。问题是这个 json 调用在另一个函数内部,它也需要返回该布尔值。
我这里有两个解决方案
-
不知何故从 JSON 返回函数返回数据,然后从包装函数再次返回(我这里的代码不起作用,我不知道如何从 $. postJSON:
function testZipCode(zipcode, state) { var s; $.postJSON("/Cart/ZipTest", { state: state, zipCode: zipcode }, function (data) { if (!data.ok) { s = false; } s = true; }); return s; }}
-
等待 POST 完成,然后像这样返回结果:(我在这里遇到的错误是我在 POST 完成之前调用了 return,因此 responseText 为空。有人可以帮忙吗?
var result = $.postJSON("/Cart/ZipTest", { state: state, zipCode: zipcode }, function (data) { if (!data.ok) { //do something } }); return $.parseJSON(result.responseText).ok;
【问题讨论】:
-
您是否创建了一个名为
jQuery.postJSON的方法? jQuery 没有内置的。你的返回$.parseJSON(...)将在 responsetext 有值之前发生,异步代码不应该这样写。 -
这正是问题所在。是的,我确实有 .postJSON。谢谢