0

我有一个从未见过的奇怪情况。我有一个 jquery ajax,它调用一个执行 sql 查询的方法,构建 json 响应并将其写回响应流。

一旦执行了 ajax 调用,完整的函数就会成功触发,并带有空响应文本......我可以调试该方法并查看它是否正在构建响应并返回它。只是不确定这里有什么想法吗?ASP .net 如果有帮助的话。

        jQuery.ajax({
            url: 'Data/ServiceCalls.aspx?SelectRequestsWithDate=1&start_date=' + escape(jQuery("#request_start_date").val()) + '&end_date=' + escape(jQuery("#request_end_date").val()) + "'",
            type: "POST",
            dataType: "json",
            success: function (jsonresponse, stat) {


                if (stat === "success") {
                    var thegrid = jQuery("#grid_requests")[0];
                    var jsonObject = eval('(' + jsonresponse.responseText + ')');
                    thegrid.addJSONData(jsonObject);
                    jsonresponse = null;
                    thegrid = null;
                }
            }


        });
4

3 回答 3

1

当您使用 POST 时,您可以尝试将数据作为 POST 值发送,而不是作为 GET 将其附加到您的 url,例如:

jQuery.ajax({
   url: 'Data/ServiceCalls.aspx",
   type: "POST",
   dataType: "json",
   data : {"SelectRequestsWithDate" : 1"...},
   ......

或者尝试使用 GET 作为你的类型

于 2012-08-30T04:36:03.540 回答
0

如果要调试,只需将成功回调函数移至单独的回调函数即可:

jQuery.ajax({
            url: 'Data/ServiceCalls.aspx?SelectRequestsWithDate=1&start_date=' + escape(jQuery("#request_start_date").val()) + '&end_date=' + escape(jQuery("#request_end_date").val()) + "'",
            type: "GET",
            dataType: "json",
            success: callback
        });

function callback (jsonresponse, stat) {


                if (stat === "success") {
                    var thegrid = jQuery("#grid_requests")[0];
                    var jsonObject = eval('(' + jsonresponse.responseText + ')');
                    thegrid.addJSONData(jsonObject);
                    jsonresponse = null;
                    thegrid = null;
                }
            }
于 2012-08-30T11:53:08.137 回答
0

我感谢你的所有建议。问题似乎是我在 jqgrid 内部进行了 ajax 调用。无论出于何种原因,它都会立即触发成功功能。我将它移到网格之外,一切都开始工作了。

不是最好的答案,但也许它会帮助别人。

布莱克

于 2012-08-31T03:40:52.573 回答