MVC JsonResult没有使用chrome?

时间:2012-09-04 14:29:41

标签: javascript jquery asp.net-mvc json

我希望jquery从我的MVC控制器中获取JsonResult,但它没有收到任何数据!

如果我将输出放入文本文件并输入其链接,那么我认为我的jQuery很好。

然后我正在测试其他浏览器,比如chrome,我看到了NOTHING。请求的页面只是emtpy ..没有错误。 IE似乎也有问题接收我的字符串..只有firefox显示字符串,但为什么?

    public JsonResult jsonLastRequests()
    {
        List<Request> requests = new List<Request>();
        while (r.Read())
        {
            requests.Add(new Models.Request()
            {
                ID = (int)r[0],
                SiteID = r[1].ToString(),
                Lat = r[2].ToString(),
                City = r[4].ToString(),
                CreationTime = (DateTime)r[5]
            });
        }
        r.Close();
        return Json(requests);
    }

我发现如果我想将JSON作为字符串返回它不起作用! 它现在在所有浏览器中使用字符串..但是jQuery仍然没有加载任何东西

        var url = "http://../jsonLastRequests";
        var source =
        {
            datatype: "json",
            datafields: [
                { name: 'ID' },
                { name: 'SiteID' },
                { name: 'Lat' },
                { name: 'CreationTime' },
                { name: 'City' },
            ],
            id: 'id',
            url: url
        };
        var dataAdapter = new $.jqx.dataAdapter(source, {
            downloadComplete: function (data, status, xhr) { },
            loadComplete: function (data) { },
            loadError: function (xhr, status, error) { }
        });

我通过添加:修复了我的问题: 存取控制允许来源:*

1 个答案:

答案 0 :(得分:1)

 public HtmlString jsonLastRequests()
    {
        List<Request> requests = new List<Request>();
        while (r.Read())
        {
            requests.Add(new Models.Request()
            {
                ID = (int)r[0],
                SiteID = r[1].ToString(),
                Lat = r[2].ToString(),
                City = r[4].ToString(),
                CreationTime = (DateTime)r[5]
            });
        }  r.Close();
 System.Web.Script.Serialization.JavaScriptSerializer jSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();


            return new HtmlString(jSerializer.Serialize(requests ));}

我像这样做了同样的approch

  $.ajax({
        type: 'POST',
        url: '/home/GetSurvey',
        data: {
            XmlPath: $("#xmlpath").val()
        },
        dataType: 'json',
        success: function (jsonData) {
            jsonStringQuestionaire = jsonData;
            LoadSurvey();
        },
        error: function () {
            alert('Error loading ' + id);
        }
    });
 questionaireJsonList = eval(jsonStringQuestionaire);