0

我正在向服务器发送一个简单的 JSON 帖子,我只在布尔值上检索。问题是这个 json 调用在另一个函数内部,它也需要返回该布尔值。

我这里有两个解决方案

  1. 不知何故,从 JSON 返回函数返回数据,然后从包装函数再次返回(我这里的代码不起作用,我不知道如何从 $.postJSON 中的“function(){} 返回数据:

        function testZipCode(zipcode, state) {
        var s;
        $.postJSON("/Cart/ZipTest",
            {
                state: state,
                zipCode: zipcode
            }, function (data) {
                if (!data.ok) {
                    s = false;
                }
                s = true;
            });
            return s;
    }
    

    }

  2. 等待 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;
    
4

2 回答 2

2

将 ajax 调用作为延迟对象返回并在回调函数中执行一些操作:

function someOtherFunction() {
    testZipCode('90102', 'FL').done(function(data) {
        if (!data.ok) something = false;
    });

}

function testZipCode(zipcode, state) {
    return $.getJSON("/Cart/ZipTest", {state: state, zipCode: zipcode} );
}​
于 2012-08-29T18:13:47.707 回答
0

做这样的事情..

 {
            state: state,
            zipCode: zipcode
        }, function (data, count) {
            if (!data.ok) {
               getTheData(data); //do something
            }
        });


           return $.parseJSON(result.responseText).ok;

         function getTheData(data)
{
//do things with data here
}
于 2012-08-29T18:13:43.217 回答