Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# jQueryAjax调用每次返回空响应_C#_Jquery_Asp.net - Fatal编程技术网

C# jQueryAjax调用每次返回空响应

C# jQueryAjax调用每次返回空响应,c#,jquery,asp.net,C#,Jquery,Asp.net,我的页面上有一个链接,它创建了一个AJAX调用,调用页面本身并返回一个值。成功创建的服务器生成的响应变为空,或者有时是AJAX的错误函数。我几乎什么都试过了,却找不到解决办法 以下是我的AJAX函数: var Ajax = { AjaxCall: function (uri, jsonData, callBack, postParams) { $.ajax({ cache: false, type: "POST",

我的页面上有一个链接,它创建了一个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);
我不明白为什么在同一个页面上有相同的结构,有相同的程序,但不是这个


提前感谢。

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

它有助于了解发生了什么,并分析请求和响应

无论如何,作为最佳实践,您应该只传递数据来用ajax填充html,而不是像@gaurav在null data中提到的那样在某些浏览器上无法正确处理整个html。我按如下方式处理空数据:

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);
            }
        });
    },

当出现错误时,错误消息是什么:函数(msg)?它也是空的。我不明白的是,在3次尝试中,第一次是空的,第二次是错误的,第三次是成功的。顺便说一句,我的结论是这个问题发生在ie9中。@AndrewAlters抱歉误导,错误代码是12031。奇怪的是:当fiddler处于活动状态时,我无法重现这种情况!)@阿塔卡诺津-墨菲定律:D@atakanozgun所以,为了排除故障,你能检查一下当你在方法中硬编码数据:{}时会发生什么吗?这样你就知道罪魁祸首在哪里了:)还有一件事,在firefox中,你需要在没有数据传递时放置数据:{},否则你也会看到问题。谢谢@gaurav你的建议解决了我的问题。我贴了一个关于你评论的答案。