Javascript 阻塞 post 请求
Javascript blocking on post request
我有一个我认为非常正常和健全的 javascript 功能,如下:
$scope.pickFile = function() {
filepicker.setKey("...");
filepicker.pick(
{},
function(Blob) { // OnSuccess
var uuid = Blob.url.split('/').slice(-1)[0];
window.location.replace("/url" + uuid);
$.post(
"/other_url" + uuid,
{'input': $('#rawText')[0].checked? "text" : "features"}
);
});
}
现在,奇怪的是,在 post 请求完成之前,重定向不会发生。我的直觉说这可能是 filepicker 在幕后发生的一些魔法,但我不知道它可能是什么,而且似乎没有任何相关文档。
它似乎也不是简单的同步性,因为重定向实际上是第一个,但它在 post 请求完成时阻塞。
尝试更改 post 以明确不包括回调处理程序:
var mypost = $.ajax({
type: "POST",
url: "/other_url" + uuid,
data: {'input': $('#rawText')[0].checked? "text" : "features"}
});
return false;
我有一个我认为非常正常和健全的 javascript 功能,如下:
$scope.pickFile = function() {
filepicker.setKey("...");
filepicker.pick(
{},
function(Blob) { // OnSuccess
var uuid = Blob.url.split('/').slice(-1)[0];
window.location.replace("/url" + uuid);
$.post(
"/other_url" + uuid,
{'input': $('#rawText')[0].checked? "text" : "features"}
);
});
}
现在,奇怪的是,在 post 请求完成之前,重定向不会发生。我的直觉说这可能是 filepicker 在幕后发生的一些魔法,但我不知道它可能是什么,而且似乎没有任何相关文档。
它似乎也不是简单的同步性,因为重定向实际上是第一个,但它在 post 请求完成时阻塞。
尝试更改 post 以明确不包括回调处理程序:
var mypost = $.ajax({
type: "POST",
url: "/other_url" + uuid,
data: {'input': $('#rawText')[0].checked? "text" : "features"}
});
return false;