javascript - 获取 iFrame 中 Ajax 函数的结果

标签 javascript jquery ajax iframe

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

警报从未达到。

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

为什么我的警报没有成功达到? 为什么我的页面没有收到新值,但在 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);
        }
    });
}

错误

语法错误:JSON.parse:JSON 数据第 1 行第 1 列出现意外字符

URL 调用的响应

enter image description here

Controller 中的方法

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

这只发生在网络服务器中。本地主机工作正常。

enter image description here

最佳答案

不要将 URL 像 Ajax 中的字符串一样,调用一个包含 Controller 中的操作的变量

var URL = "@Html.Action("myAction", "myController")";

$.ajax({ 网址: 网址 ... });

关于javascript - 获取 iFrame 中 Ajax 函数的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26159846/

相关文章:

javascript - IE7 上的 jquery.ui.autocomplete.js 问题

javascript - ContentTools - 如何将附加数据从 DIV 传递到有效负载对象,以传递到 POST 数组?

javascript - 如何在每个循环中完成单独的 ajax 调用后运行代码

javascript - 数据表格表单提交所有记录

javascript - 谷歌地图 API - GMarker.openInfoWindowHtml() 停止工作

javascript - 检测到 HTML 文本框的拖放?

javascript - 在网络中绘制斐波那契数错误

javascript - 无法设置未定义的属性(输入 [文本] 值)

javascript - 如何禁用 ExtJS 中网格上的复选框?

javascript - Firefox 上的书签 API