function votar(eid){
alert('inside function');
$.post(baseUrl+"/index/voto",{id:eid},function(e){
alert('after post');
我在这里有这个功能。在开发人员服务器上,我全力以赴。没问题。 一旦我上传到生产服务器,我只得到第一个要显示的警报。
$.post(baseUrl+"/index/voto",{id:eid},function(e){
baseUrl是正确的。
/ index / voto是正确的路径(与dev。服务器相同)到voto方法到索引控制器,id:edid是json格式是的,所以,没有错,最后,我只是有回调。
对于生产环境中没有显示第二个警报的事实,我们有什么可能性?
稍后在同一个文件中,我有这个函数,同一行代码,它完美地工作:
function showDetails(eid, elemento){
$.post(baseUrl+"/index/details.campaign",{id:eid},function(e){
唯一的区别是它调用的服务器端功能,一方面是“details.campaign”,另一方面是“voto”。
我们可以说这个问题必须依赖那里吗?只有那里?
更新: 这是ipsis verbis,完整的投票功能:
function votar(eid) {
$.post(baseUrl+"/index/voto",{id:eid},function(e){
var divMsg = $("#msg");
var colunasFinalistas = $("#colunasFinalistas");
var rodape = $("#rodape");
var botaoVota = $("#votaEmGrande");
var html = "";
//no caso de votar pela primeira vez
if(e.msg == 1){
html = '<img src="'+baseUrl+'/lib/img/obrigadoParticipacao.png" alt="pdf" />';
rodape.removeClass("margemSeparadorRodape");
colunasFinalistas.hide();
}else if(e.msg == 3){
//no caso ja ter votado - se não existir nenhum elemento já:
if ($('#votoJaContabilizado').length == 0) {
botaoVota.after('<p id="votoJaContabilizado">O teu voto já foi contabilizado.</p>');
}
} else if(e.msg == 2){
//no caso da equipa nao existir
html = '<img src="'+baseUrl+'/lib/img/equipaNaoExiste.png" alt="pdf" />';
colunasFinalistas.hide();
} else{
//no caso de outro erro
html = '<img src="'+baseUrl+'/lib/img/erroEstranho.png" alt="pdf" />';
}
if (html != ''){
divMsg.html(html);
divMsg.show();
}
}, 'json');
}
答案 0 :(得分:2)
冒着说明问题的风险,如果没有调用回调方法,则表示调用不成功。
$ .post是完整$ .ajax的简写。尝试使用$ .ajax并实现错误函数;这将显示您是否丢失了代码丢失的任何错误。
有关$ .ajax的更多信息,请访问:$.ajax
$.ajax({
type: 'POST',
url: baseUrl+"/index/voto",
data: //any required params go here,
success: function(data, textStatus, jqXHR) {
debugger;//hooray it worked!
},
error: function(jqXHR, textStatus, errorThrown) {
debugger;//there was an error
},
dataType: //type of data you are expecting back from the server
});
答案 1 :(得分:1)
$.post
功能中的第三个参数是成功回调。因此,如果它在开发人员服务器而不是您的生产服务器上正常工作,那么您从服务器获得的响应就会出现问题。你有没看过来自服务器的响应,因为你的ajax请求没有成功。
检查您从服务器获得的响应(如果有)和/或在提交$.post
时检查服务器上是否有任何操作。
答案 2 :(得分:1)
试试这个,并告诉我们你得到了什么:
var vote = $.post(baseUrl+"/index/voto",{id:eid},function(e){
alert('after post');
});
vote.error(function(e){
alert(e.statusText);
});
答案 3 :(得分:0)