在 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 调用的响应
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);
}
这只发生在网络服务器中。本地主机工作正常。
最佳答案
不要将 URL 像 Ajax 中的字符串一样,调用一个包含 Controller 中的操作的变量
var URL = "@Html.Action("myAction", "myController")";
$.ajax({ 网址: 网址 ... });
关于javascript - 获取 iFrame 中 Ajax 函数的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26159846/