最近将sdsite修改了一个版本,即本地版本,将它部署到了阿里云的vps上,大部分运行良好。不过有个小问题一直没有找到原因,就是jquery中post后responseText为空的问题。同样的情况在我的本机或在sae上均能正常返回数据,但是在阿里云上却不能返回数据。

我将post改为get后竟又能反返回正常数据了,不过get方式不是我想要的,而且还不能确认这个问题是jquery的问题还是阿里云服务器上的问题,等待进一步的解决。先看看代码:

function del(option){
    try{
        if(delCtrl.isRunning){$.dialog.alert('处理中,请勿重复提交!');return false;}
        if(option.id){$("#"+option.id).attr('bgcolor','#FFCC99');}
        if(option.formStr){option.formStr=option.formStr+'&_retType=json';}else{option.formStr = '_retType=json';}
        option.msg = option.msg||'确定要删除此项么?';
        $.dialog.confirm(option.msg,
            function(){delCtrl.begin();
                $.get(option.url, option.formStr, function(data, textStatus, jqXHR){
                    if(data.flag){$("#"+option.id).attr('bgcolor','#CC0000').fadeOut("slow",function(){$(this).remove();if(option.callback){option.callback(data);}});}
                    else $.dialog.alert(data.msg, function(){$("#"+option.id).removeAttr('bgcolor');});
                    delCtrl.end();
                },'json');
            },
            function(){$("#"+option.id).removeAttr('bgcolor');}
        );
    }catch(e){delCtrl.end();}
}

思考,同样的代码部署在sae和本地能正常运行,现在把问题的重点放在aliyun的vps上,这个vps上部署的是nginx 1.2.7版本,是稳定最新版本,不会有这样的bug,那应该是配置问题,还是从配置下手吧。

苦恼,baidu了半天也没相关的信息。

解决:

将post时的参数“_retType=json”删除即可,这个参数是无关紧要的,跟业务没关系,至于为什么会这样,我还搞清楚。