原创

js-ajax请求后跳转可能被浏览器拦截

重点:

方法1、 async: 要传false,表示同步。推荐
ajaxGetNoTip({pkId: pkId}, "url", function (data) {
if (data.status === "success") {
//openSaleReturn(pkId)
openNewSaleReturn(pkId);
} else {
confirmMessageDialog(data.str + ",是否继续?", function () {
//openSaleReturn(pkId)
openNewSaleReturn(pkId);
});
}
}, 'json', false);

方法2、 var newWebPage = window.open();

$("#saleReturnBtn").on("click", function () {
var pkId = $("#pkId").val();
var newWebPage = window.open();
// 可以通过 newWebPage 来关闭页面。newWebPage.close();
ajaxGetNoTip({pkId: pkId}, getRootPath() + "/saleReturn/validateSourceBill.json", function (data) {
if (data.status === "success") {
newWebPage.location = getRootPath() + "url";
}
});
});

function redirectToNewSaleReturn(newWebPage,pkId) {
//处理在ajax后跳转可能被浏览器拦截
newWebPage.location = getRootPath() + "url”;
}


/**
* ajax get提交(无提示信息)
* @param data
* @param ajaxCallUrl
* @param savecallback
*/
function ajaxGetNoTip(data, ajaxCallUrl, savecallback, dataType, async, errorcallback) {
var dataArray = [];
if (data && typeof (data) === "object") {
for(var key in data) {
if ($.isArray(data[key])) {
$.each(data[key], function (index, item) {
dataArray.push(key + '=' + item);
})
} else if(typeof (data[key]) !== "undefined" && data[key] !== null) {
dataArray.push(key + '=' + data[key]);
}
}
} else {
dataArray.push(data);
}
$.ajax({
cache: true,
type: "get",
dataType: dataType ? dataType : "json",
url: ajaxCallUrl,
data: dataArray.join("&"),
async: async === undefined ? true : async,
error: function (request, error, ex) {
// console.log(request);
// console.log(error);
// console.log(ex);
if ($.isFunction(errorcallback)) {
errorcallback.call(this);
}
},
success: function (response) {
if ($.isFunction(savecallback)) {
savecallback.call(this, response);

}
}
});
}
正文到此结束
本文目录