ajax調用後臺實現文件下載,不彈出下載提示框,無法下載

在做ajax調用後臺實現文件下載時,出現了後臺返回前端正確數據,但前臺就是不提示下載框,且沒有下載文件
$.ajax({
		"url" : urlStr + 'exportFile',
		"method" : "POST",
		"data" : {
			"list_str" : json_str
		},
		"cache" : false,
	}).success(function(data) {
		if (data.ecode && data.ecode == '-1000') {
			showError(data.emessage);
			return;
		} else {
			showInfo("導出採購需求成功");
		}
	}).fail(function(data) {
		showError(data.emessage);
		return;
	});
用上面方法調用後臺就會出現上述問題,修改爲下面方法:
$.dynamicSubmit = function(url, datas) {

		var form = $('#dynamicForm');

		if (form.length <= 0) {
			form = $("<form>");
			form.attr('id', 'dynamicForm');
			form.attr('style', 'display:none');
			form.attr('target', '');
			form.attr('method', 'post');

			$('body').append(form);
		}

		form = $('#dynamicForm');
		form.attr('action', url);
		form.empty();

		if (datas && typeof (datas) == 'object') {
			for ( var item in datas) {
				var $_input = $('<input>');
				$_input.attr('type', 'hidden');
				$_input.attr('name', item);
				$_input.val(datas[item]);

				$_input.appendTo(form);
			}
		}

		form.submit();
	};
	$.dynamicSubmit(urlStr + 'exportFile', {
		"list_str" : json_str
	});
上述方法是利用JQuery動態構建一個form來post,$.dynamicSubmit()方法第一個參數是請求的地址,第二個參數爲傳後臺的json數據

轉自:https://blog.csdn.net/qq_33390789/article/details/54907915

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章