jQuery ajax 返回数据时报错readystate:0 status:0 statusText:"error"; Firefox报错,谷歌正常;

先上一段代码:

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($("
").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,再进行处理就好了。希望对大家有所帮助。



你可能感兴趣的:(jq,ajax,jQuery,Firefox,jquery,ajax,firefox)