-1

jqueryでMVCコントローラーからJsonResultを取得したいのですが、データを受信しません。

出力をテキストファイルに入れ、そのリンクを入力すると機能するので、jQueryは問題ないと思います。

それから私はクロームのような他のブラウザでテストしていました、そして私は何も見ませんでした。リクエストされたページは空っぽでした。エラーはありませんでした。また、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) { }
        });

次を追加して問題を修正しました:access-control-allow-origin:*

4

1 に答える 1

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

私はこのような同じアプローチをしました

  $.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);
于 2012-09-04T15:08:00.077 に答える