在我在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列的意外字符
来自网址广告的响应
控制器中的方法
[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工作正常。
答案 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中解析您的响应,然后填写动态列表。