Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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
Javascript AJAX响应文本始终为空_Javascript_C#_Json_Ajax - Fatal编程技术网

Javascript AJAX响应文本始终为空

Javascript AJAX响应文本始终为空,javascript,c#,json,ajax,Javascript,C#,Json,Ajax,我正在使用asp.NETWeb表单,并尝试使用AJAX从java脚本函数调用web服务方法,该函数返回一个JSON数组,其中包含一个车号和一个车号ID对 web方法位于java脚本函数页的同一代码隐藏文件中 我使用调试器多次检查json变量,并确保它包含有效的json数组 但是,当我检查FillLimoCars java脚本函数中的cars对象时,我发现响应文本是一个空数组 我不知道为什么会这样我希望你们中的任何人都能帮上忙 Java脚本 function testBut

我正在使用asp.NETWeb表单,并尝试使用AJAX从java脚本函数调用web服务方法,该函数返回一个JSON数组,其中包含一个车号和一个车号ID对 web方法位于java脚本函数页的同一代码隐藏文件中 我使用调试器多次检查json变量,并确保它包含有效的json数组 但是,当我检查FillLimoCars java脚本函数中的cars对象时,我发现响应文本是一个空数组 我不知道为什么会这样我希望你们中的任何人都能帮上忙

Java脚本

            function testButton(carModelID) {
            $.ajax({
                type: "POST",
                url: baseURL + "WebPages/NewPages/ListCarRental.aspx/FillLimoCars",
                data: "{CarModelID:'" + carModelID + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                complete: FillLimoCar
                });
        }

        function FillLimoCar(cars)
        {
            var rdd_LimoCars = $find("<%=rdd_LimoCarNumber.ClientID %>");
            var comboItem = new Telerik.Web.UI.RadComboBoxItem();
            for(var i = 0; i < cars.length; i++)
            {
                ;
            }
        }
功能测试按钮(carModelID){
$.ajax({
类型:“POST”,
url:baseURL+“WebPages/NewPages/ListCarRental.aspx/FillLimoCars”,
数据:“{CarModelID:'”+CarModelID+“}”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
完成:FillLimoCar
});
}
功能FILLIMOCAR(汽车)
{
变量rdd_LimoCars=$find(“”);
var comboItem=new Telerik.Web.UI.RadComboBoxItem();
对于(变量i=0;i
C#

[WebMethod]
公共静态字符串FillLimoCars(int CarModelID)
{
尝试
{
JavaScriptSerializer serializer=新的JavaScriptSerializer();
List limos=carsBLL.GetCarModelLimoFleet(CarModelID);
List objLimosList=新列表();
foreach(豪华轿车中的var limo)
{
var limoObj=新
{
CarID=豪华轿车CarID,
卡号=豪华轿车卡号
};
objLimosList.Add(limoObj);
}
var json=serializer.Serialize(objLimosList);
返回json;
//Write(objLimos.ToJson());
}
捕获(例外情况除外)
{
示踪剂.单体.对数(ex);
返回null;
}
}

您必须使用success属性。在success内部,您必须反序列化JSON对象

$.ajax({
                type: "POST",
                url: baseURL +     "WebPages/NewPages/ListCarRental.aspx/FillLimoCars",
                data: "{CarModelID:'" + carModelID + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                "success": function (json) {
                      if (json.d != null) {
                              FillLimoCars(json.d);
                          }
                  });

我尝试过使用success属性,但仍然得到了相同的结果,我不明白为什么在浏览器中尝试dubug会有什么不同。记录输出控制台.Log(json.d)并查看它返回了什么。已经这样做了,它返回了一个空数组“{”d:“[]”}”@pradeeph问题出在服务器端。请确保objLimosList不是空的。如果不为空,请使用Newtonsoft.Json.JsonConvert序列化该对象。语法是JsonConvert.SerializeObject(objLimosList)刚刚尝试使用Newtonsoft serializer并得到了相同的结果,我认为问题不在于如何像前面提到的那样序列化对象,我检查了对象是否是序列化程序。您是否检查了FillLimoCars函数以验证它是否返回了一个以开始的值?@Sergio是的,并且它返回了一个有效的JSON数组,正如我前面提到的
$.ajax({
                type: "POST",
                url: baseURL +     "WebPages/NewPages/ListCarRental.aspx/FillLimoCars",
                data: "{CarModelID:'" + carModelID + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                "success": function (json) {
                      if (json.d != null) {
                              FillLimoCars(json.d);
                          }
                  });