先上一段代码:
url: "/ENV/operate_show",
dataType:"json",
contentType:"application/json;charset=utf-8",
data: data1,
type: "POST",
async: true,
success: function (sev) {
var log = sev.logg;
var start_infor = sev.startinfor;
$('#infortext').text(start_infor);
$("#log").text("");
log.forEach(function(e){
$("#log").append($("<div></div>").text(e))
});
$("#load-mod").hide();
$("#ss").text("stopped").show();
$("#operate-button").text("start");
checkLog()
$("#operate-button").removeAttr('disabled')
},
error: function (sev) {
console.log(sev)
}
Firefox每次到ajax返回数据这块,直接走了error,排除了后台数据以及各式;后来用chrome试了下,竟然好着,所以考虑到不兼容问题;
查了资料排除了兼容性问题;后来发现火狐下返回的是object,而谷歌是json,所以问题就出在了这,火狐会将后台返回的json转成对象。
所以改成了这样,
......
dataType:"text",
contentType:"application/json;charset=utf-8",
data: data1,
type: "POST",
async: true,
success: function(sevv) {
console.log(sevv);
var sev = JSON.parse(sevv);
if ('err' === sev.err) {
// err err_info log
var err_info = sev.err_info;
console.log('2222',sev)
console.log(err_info)
var log = sev.log;
将ajax中的dataType改为'text',success 回调函数将返回的 字符串 转换为json,再进行处理就好了。希望对大家有所帮助。