在iFrame中获取Ajax函数的结果

时间:2014-10-02 11:29:42

标签: javascript jquery ajax iframe

在我在iFrame中加载的解决方案中,我需要运行一些ajax函数,并且为了确保调用ajax的success函数,我放了一个alert来查看结果。

从未达到此alert

在Firebug中,我可以看到调用了Ajax函数中设置的URL,并返回一个JSON字符串,但是带有我想要的值。

为什么我的alert未在success中到达? 为什么我的页面没有收到新值,但是在firebug中我可以看到它们?

self.RecoverNewValues = function () {        
        $.ajax({
            url: "myurl?period=" + self.periodoSelecionado,
            type: "POST",
            async: true,
            dataType: 'json',
            success: function (result) {
                alert(result);                        
                var trimestralRevenue = result.RevenueTotalizer.TrimestralRevenue;

            $("#qtdRevenue").text(trimestralRevenue );

            var html = "";
            for (var i = 0; i < result.RevenueByType.length; i++) {
                var a = i + 1;
                html += "<li class='list-group-item fist-item liAgrupaTiposReceita_" + a + "'>"
                    + " <span class='pull-right'>"
                    + "         <span class='valorOrigem' id='txtTextoValorLocacao_" + a + "'>R$ " + result.RevenueByType[i].ValueDollar.formatMoney(2, ',', '.') + "</span>"
                    + " </span>"
                    + " <span class='label label-success'>" + a + "</span>"
                    + " <span id='spanDescricaoOrigemReceita_" + a + "'>" + result.RevenueByType[i].DescriptionSource+ "</span>"
                    + "</li>";
            }

            $('#iframePrincipal').contentWindow.document.body.getElementsByClassName("list-group")[0].innerHTML = html;
        },
        error: function(jqXHR, textStatus, errorThrown) {           
            console.log(jqXHR);
            console.log(textStatus);
            console.log(errorThrown);
        }
    });
}

错误

SyntaxError:JSON.parse:JSON数据第1行第1列的意外字符

来自网址广告的响应

enter image description here

控制器中的方法

    [HttpPost]
    public string AtualizaValoresDosTotalizadoresPeloPeriodoSelecionado(string periodo)
    {
        var biggestRevenue = biggestRevenueByType(periodo);
        var listaTotalizadores = ReceitaTotalizadores(periodo);

        var receita = new ReceitaAssunto
        {
            ReceitaPorTipoReceita = listaMaioresReceitasPorTipoReceita,
            ReceitaTotalizadores = listaTotalizadores
        };

        return JsonConvert.SerializeObject(receita);
    }

这只发生在Web服务器上。 Localhost工作正常。

enter image description here

2 个答案:

答案 0 :(得分:1)

而是将URL像字符串一样放在Ajax中,调用一个变量,其中包含来自Controller的Action

var URL =&#34; @ Html.Action(&#34; myAction&#34;,&#34; myController&#34;)&#34 ;;

$。AJAX({             网址:网址 ... });

答案 1 :(得分:0)

您的JSON响应不是JSON,而是不支持数据类型为JSON的HTML。更新您的页面只返回JSON或从您的选项中删除dateType。您应该在JS中解析您的响应,然后填写动态列表。