jQuery AJAX调用返回空响应时间

本文关键字:响应时间 返回 调用 AJAX jQuery | 更新日期: 2023-09-27 17:58:37

我的页面上有一个链接,它创建了一个AJAX调用页面本身并返回一个值。成功创建的服务器生成的响应是空的,或者有时是AJAX的错误函数。我几乎什么都试过了,但都没能想出解决办法。

这是我的AJAX函数:

var Ajax = {
    AjaxCall: function (uri, jsonData, callBack, postParams) {
        $.ajax({
            cache: false,
            type: "POST",
            url: uri + ((uri.indexOf("?") > -1) ? "&" : "?") + "rand=" + new Date().format("ssmmHHddMMyyyy"),
            data: JSON.stringify(jsonData),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {
                Ajax.AjaxCall_CallBack(msg, callBack, postParams);
            },
            error: function (msg) {
                Ajax.AjaxCall_CallBack_Error(msg);
            }
        });
    },
    AjaxCall_CallBack: function (msg, callBack, postParams) {
        callBack(msg, postParams);
    },
    AjaxCall_CallBack_Error: function (msg) {
        alert(msg.responseText);
    }
}

该函数使AJAX调用

Ajax.AjaxCall('dummypage.aspx?ajax=6&edit=1&uID=' + uID, null, callback_func, [uID, 'Test Text', 0])

从服务器生成的值是这样的:

Table tbl;
TableRow tr;
TableCell tc;
Label lbl;
DropDownList ddl;
tbl = new Table();
tr = new TableRow();
tc = new TableCell();
lbl = new Label();
lbl.Text = "Choose one"
tc.Controls.Add(lbl);
tr.Cells.Add(tc);
tc = new TableCell();
ddl = new DropDownList();
ddl.Items.Add("Choose", "-1"));
ddl.Items.Add("First", "1");
ddl.Items.Add("Second", "2");
ddl.ID = "ddlContentType";
tc.Controls.Add(ddl);
tr.Cells.Add(tc);
tbl.Rows.Add(tr);
StringBuilder sb = new StringBuilder();
StringWriter tw = new StringWriter(sb);
HtmlTextWriter hw = new HtmlTextWriter(tw);
tbl.RenderControl(hw);
string renderedValue = sb.ToString();
hw.Close();
return HttpUtility.JavaScriptStringEncode(renderedValue, true);

我不明白为什么在同一页上有完全相同的结构,有相同的程序,却不能工作?

提前谢谢。

jQuery AJAX调用返回空响应时间

正如@gaurav在jQuery中提到的那样,AJAX调用返回null响应时间null数据在某些浏览器上无法正确处理。我处理空数据如下:

function RunAjaxCall(uri, jsonData, callBack, postParams) {
        $.ajax({
            type: "POST",
            url: uri + ((uri.indexOf("?") > -1) ? "&" : "?") + "rand=" + new Date().getTime(),
            **data: jsonData != null ? JSON.stringify(jsonData) : {},**
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            cache: "false",
            success: function (msg) {
                Success(msg, callBack, postParams);
            },
            error: function (msg) {
                Error(msg);
            }
        });
    },

当你有这样奇怪的ajax/WCF/webservice行为时,唯一能帮助你的就是Fiddler

它有助于了解正在发生的事情并分析请求和响应。

无论如何,作为最佳实践,您应该只传递用ajax填充html的数据,而不是整个html